mirror of
				https://github.com/zadam/trilium.git
				synced 2025-10-29 02:28:57 +01:00 
			
		
		
		
	optimization of recursive CTE attribute query
This commit is contained in:
		
							parent
							
								
									8c3e2e5eb7
								
							
						
					
					
						commit
						35cd7f3261
					
				| @ -349,11 +349,10 @@ class Note extends Entity { | ||||
|             tree(noteId, level) AS ( | ||||
|                 SELECT ?, 0 | ||||
|                 UNION | ||||
|                 SELECT branches.parentNoteId, tree.level + 1 FROM branches | ||||
|                     JOIN tree ON branches.noteId = tree.noteId | ||||
|                     JOIN notes ON notes.noteId = branches.parentNoteId | ||||
|                 WHERE notes.isDeleted = 0 | ||||
|                   AND branches.isDeleted = 0 | ||||
|                 SELECT branches.noteId, tree.level + 1  | ||||
|                     FROM branches | ||||
|                     JOIN tree ON branches.parentNoteId = tree.noteId | ||||
|                 WHERE branches.isDeleted = 0 | ||||
|             ), | ||||
|             treeWithAttrs(noteId, level) AS ( | ||||
|                 SELECT * FROM tree | ||||
|  | ||||
| @ -112,15 +112,15 @@ async function eraseNoteRevision(req) { | ||||
| } | ||||
| 
 | ||||
| async function getEditedNotesOnDate(req) { | ||||
|     const date = req.params.date; | ||||
|     const date = utils.sanitizeSql(req.params.date); | ||||
| 
 | ||||
|     const notes = await repository.getEntities(` | ||||
|         select distinct notes.* | ||||
|         from notes | ||||
|         left join note_revisions using (noteId) | ||||
|         where substr(notes.dateCreated, 0, 11) = ? | ||||
|            or substr(notes.dateModified, 0, 11) = ? | ||||
|            or substr(note_revisions.dateLastEdited, 0, 11) = ?`, [date, date, date]);
 | ||||
|         where notes.dateCreated LIKE '${date}%' | ||||
|            OR notes.dateModified LIKE '${date}%' | ||||
|            OR note_revisions.dateLastEdited LIKE '${date}%'`);
 | ||||
| 
 | ||||
|     for (const note of notes) { | ||||
|         const notePath = noteCacheService.getNotePath(note.noteId); | ||||
|  | ||||
| @ -161,7 +161,7 @@ async function wrap(func, query) { | ||||
|         const result = await func(dbConnection); | ||||
| 
 | ||||
|         const milliseconds = Date.now() - startTimestamp; | ||||
|         if (milliseconds >= 200) { | ||||
|         if (milliseconds >= 300) { | ||||
|             if (query.includes("WITH RECURSIVE")) { | ||||
|                 log.info(`Slow recursive query took ${milliseconds}ms.`); | ||||
|             } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 zadam
						zadam