diff --git a/src/lib/db.ts b/src/lib/db.ts index a514b28..6389569 100644 --- a/src/lib/db.ts +++ b/src/lib/db.ts @@ -12,7 +12,12 @@ export function getDb(): Database.Database { _db = new Database(DB_PATH) _db.pragma('journal_mode = WAL') _db.pragma('foreign_keys = ON') + _db.pragma('busy_timeout = 5000') + _db.pragma('synchronous = NORMAL') + _db.pragma('cache_size = -65536') + _db.pragma('wal_autocheckpoint = 1000') initDb(_db) + _db.pragma('wal_checkpoint(PASSIVE)') return _db } @@ -113,6 +118,7 @@ function initDb(db: Database.Database): void { migrateComicsIndex(db) migrateTagMappingsIndexes(db) migrateUserRating(db) + migrateParentKeyItemTypeIndex(db) seedAppSettings(db) } @@ -467,6 +473,13 @@ function migrateTagMappingsIndexes(db: Database.Database): void { `) } +function migrateParentKeyItemTypeIndex(db: Database.Database): void { + db.exec(` + CREATE INDEX IF NOT EXISTS media_items_parent_key_type + ON media_items(parent_key, item_type); + `) +} + function migrateUserRating(db: Database.Database): void { const cols = db.pragma('table_info(media_items)') as { name: string }[] if (!cols.some((c) => c.name === 'user_rating')) {