diff --git a/src/resources/extensions/sf/sf-db.ts b/src/resources/extensions/sf/sf-db.ts index 5929b5b7e..f89800b06 100644 --- a/src/resources/extensions/sf/sf-db.ts +++ b/src/resources/extensions/sf/sf-db.ts @@ -313,6 +313,12 @@ function initSchema(db: DbAdapter, fileBacked: boolean): void { FOREIGN KEY (to_id) REFERENCES memories(id) ON DELETE CASCADE ) `); + // PK covers from_id as leading column already; reverse lookups + // (memory-relations.ts queries WHERE to_id = ?) need their own index + // to avoid a full table scan as the relation count grows. + db.exec( + "CREATE INDEX IF NOT EXISTS idx_memory_relations_to ON memory_relations(to_id)", + ); db.exec(` CREATE TABLE IF NOT EXISTS memory_sources (