perf: optimise la query des auteurs — single pass + index GIN
- Remplace les 5 CTEs + double query (données + count) par une seule requête avec COUNT(*) OVER() pour le total - Calcule book_count et series_count directement depuis UNNEST, sans re-JOIN sur les tables - Ajoute des index GIN sur books.authors et series_metadata.authors Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
8
infra/migrations/0066_add_authors_index.sql
Normal file
8
infra/migrations/0066_add_authors_index.sql
Normal file
@@ -0,0 +1,8 @@
|
||||
-- GIN index for efficient array lookups on books.authors
|
||||
CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_books_authors_gin ON books USING GIN (authors);
|
||||
|
||||
-- Index on author column for legacy single-author field
|
||||
CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_books_author ON books (author) WHERE author IS NOT NULL AND author != '';
|
||||
|
||||
-- GIN index on series_metadata.authors
|
||||
CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_series_metadata_authors_gin ON series_metadata USING GIN (authors);
|
||||
Reference in New Issue
Block a user