Bug 699597 - EBookSqlite: Use UNION for autocomplete queries
The sqlite query planner does a really bad job here. It ought to realise that it could do the searches on fields in folder_id directly from the folder_id table, indices and all. So recogise this case for ourselves and rephrase it so the query planner doesn't do so badly. If it's just a logical 'OR' of a bunch of conditions, some of which are auxiliary fields and some are not, then use a basically hand-crafted query using UNION to make sure sqlite notices the fast way to do it. This takes the autocomplete query on my 237000-entry EWS GAL from about 1700ms to 6ms. Yes, it's an icky special case and it *really* ought to be considered a sqlite bug. But it's an important special case because the user is waiting for it while they type and delays are really noticeable. And it's a *big* win. Discussed at https://www.mail-archive.com/sqlite-users@sqlite.org/msg86350.html https://www.mail-archive.com/sqlite-users@sqlite.org/msg86643.html
parent
6156a41b
Please register or sign in to comment