From 222a7deedbca7ceb2a72aebf2673953b66102a03 Mon Sep 17 00:00:00 2001 From: wuyueyang Date: Mon, 16 Jan 2023 11:01:38 +0800 Subject: [PATCH] Speed up gallery item queries --- .../MixinServices/Database/User/UserDatabase.swift | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/MixinServices/MixinServices/Database/User/UserDatabase.swift b/MixinServices/MixinServices/Database/User/UserDatabase.swift index b921085103..9a5ddeca98 100644 --- a/MixinServices/MixinServices/Database/User/UserDatabase.swift +++ b/MixinServices/MixinServices/Database/User/UserDatabase.swift @@ -318,8 +318,7 @@ public final class UserDatabase: Database { try db.execute(sql: "CREATE UNIQUE INDEX IF NOT EXISTS jobs_index_id ON jobs(job_id)") try db.execute(sql: "CREATE INDEX IF NOT EXISTS jobs_next_indexs ON jobs(category, priority DESC, orderId ASC)") - try db.execute(sql: "CREATE INDEX IF NOT EXISTS messages_page_indexs ON messages(conversation_id, created_at)") - try db.execute(sql: "CREATE INDEX IF NOT EXISTS index_messages_category ON messages(conversation_id, category)") + try db.execute(sql: "CREATE INDEX IF NOT EXISTS index_messages_category ON messages(conversation_id, created_at, category)") try db.execute(sql: "CREATE INDEX IF NOT EXISTS index_messages_quote ON messages(conversation_id, quote_message_id)") try db.execute(sql: "CREATE INDEX IF NOT EXISTS index_messages_pick ON messages(conversation_id, status, user_id, created_at)") @@ -517,6 +516,12 @@ public final class UserDatabase: Database { } } + migrator.registerMigration("index_optimization_3") { (db) in + try db.execute(sql: "DROP INDEX IF EXISTS messages_page_indexs") + try db.execute(sql: "DROP INDEX IF EXISTS index_messages_category") + try db.execute(sql: "CREATE INDEX IF NOT EXISTS index_messages_category ON messages(conversation_id, created_at, category)") + } + return migrator }