From 5dc44453bad925750cf2dda1172df785f740c935 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Guillot?= Date: Tue, 17 Oct 2023 19:45:08 -0700 Subject: [PATCH] Add indexes to improve performance --- internal/database/migrations.go | 16 ++++++++++++++++ internal/storage/entry_query_builder.go | 4 ++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/internal/database/migrations.go b/internal/database/migrations.go index bdd6f739..1b4f44dd 100644 --- a/internal/database/migrations.go +++ b/internal/database/migrations.go @@ -783,4 +783,20 @@ var migrations = []func(tx *sql.Tx) error{ _, err = tx.Exec(sql) return err }, + func(tx *sql.Tx) (err error) { + sql := ` + -- Speed up has_enclosure + CREATE INDEX enclosures_entry_id_idx ON enclosures(entry_id); + + -- Speed up unread page + CREATE INDEX entries_user_status_published_idx ON entries(user_id, status, published_at); + CREATE INDEX entries_user_status_created_idx ON entries(user_id, status, created_at); + CREATE INDEX feeds_feed_id_hide_globally_idx ON feeds(id, hide_globally); + + -- Speed up history page + CREATE INDEX entries_user_status_changed_published_idx ON entries(user_id, status, changed_at, published_at); + ` + _, err = tx.Exec(sql) + return err + }, } diff --git a/internal/storage/entry_query_builder.go b/internal/storage/entry_query_builder.go index 2ad4c7f9..6bbc3eb9 100644 --- a/internal/storage/entry_query_builder.go +++ b/internal/storage/entry_query_builder.go @@ -212,8 +212,8 @@ func (e *EntryQueryBuilder) WithOffset(offset int) *EntryQueryBuilder { } func (e *EntryQueryBuilder) WithGloballyVisible() *EntryQueryBuilder { - e.conditions = append(e.conditions, "not c.hide_globally") - e.conditions = append(e.conditions, "not f.hide_globally") + e.conditions = append(e.conditions, "c.hide_globally IS FALSE") + e.conditions = append(e.conditions, "f.hide_globally IS FALSE") return e }