From 10ceefae728126a50edfbd5f5be11460ead3771f Mon Sep 17 00:00:00 2001 From: Raymond Jacobson Date: Wed, 3 Jun 2026 14:32:25 -0700 Subject: [PATCH] perf(db): index for you trending tie order --- ...ck_trending_scores_for_you_desc_tiebreak_idx.sql | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 ddl/migrations/0218_track_trending_scores_for_you_desc_tiebreak_idx.sql diff --git a/ddl/migrations/0218_track_trending_scores_for_you_desc_tiebreak_idx.sql b/ddl/migrations/0218_track_trending_scores_for_you_desc_tiebreak_idx.sql new file mode 100644 index 00000000..0442a730 --- /dev/null +++ b/ddl/migrations/0218_track_trending_scores_for_you_desc_tiebreak_idx.sql @@ -0,0 +1,13 @@ +-- The For You feed orders weekly track candidates by score DESC, track_id DESC. +-- The older partial index uses track_id ascending, leaving PostgreSQL to do an +-- incremental sort after the index scan. Match the API order exactly. + +create index concurrently if not exists idx_track_trending_scores_for_you_desc_tiebreak + on track_trending_scores (score desc, track_id desc) + where type = 'TRACKS' + and version = 'pnagD' + and time_range = 'week' + and (genre is null or genre = ''); + +comment on index idx_track_trending_scores_for_you_desc_tiebreak is + 'Partial index matching For You feed weekly track candidate ordering by score desc, track_id desc.';