Files
xamxam/app/migrations/applied/041_thesis_languages_index.sql

17 lines
754 B
SQL

-- 041: Add index on thesis_languages(language_id) for contenus page performance.
--
-- The contenus page queries getAllLanguagesWithCount() and searchLanguages() join
-- languages → thesis_languages on language_id. SQLite's PRIMARY KEY on
-- (thesis_id, language_id) cannot optimize a lookup by language_id alone, so
-- it builds an AUTOMATIC COVERING INDEX per query. This persisted index
-- removes that overhead.
--
-- Also adds a covering index on tags(deleted_at, name) to accelerate
-- getAllTagsWithCount() and searchTags() ORDER BY clauses (avoiding temp B-tree).
CREATE INDEX IF NOT EXISTS idx_thesis_languages_language
ON thesis_languages(language_id);
CREATE INDEX IF NOT EXISTS idx_tags_deleted_name
ON tags(deleted_at, name);