Update post_aggregates indexes to account for featured_local and featured_community columns. (#2661)

- Fixes #2660
This commit is contained in:
Dessalines 2023-01-20 12:44:03 -05:00 committed by GitHub
parent 7e3d3839b6
commit 6eb5ed343c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 52 additions and 0 deletions

View File

@ -0,0 +1,22 @@
-- Drop the new indexes
drop index idx_post_aggregates_featured_local_newest_comment_time,
idx_post_aggregates_featured_community_newest_comment_time,
idx_post_aggregates_featured_local_comments,
idx_post_aggregates_featured_community_comments,
idx_post_aggregates_featured_local_hot,
idx_post_aggregates_featured_community_hot,
idx_post_aggregates_featured_local_active,
idx_post_aggregates_featured_community_active,
idx_post_aggregates_featured_local_score,
idx_post_aggregates_featured_community_score,
idx_post_aggregates_featured_local_published,
idx_post_aggregates_featured_community_published;
-- Create the old indexes
create index idx_post_aggregates_newest_comment_time on post_aggregates (newest_comment_time desc);
create index idx_post_aggregates_comments on post_aggregates (comments desc);
create index idx_post_aggregates_hot on post_aggregates (hot_rank(score, published) desc, published desc);
create index idx_post_aggregates_active on post_aggregates (hot_rank(score, newest_comment_time) desc, newest_comment_time desc);
create index idx_post_aggregates_score on post_aggregates (score desc);
create index idx_post_aggregates_published on post_aggregates (published desc);

View File

@ -0,0 +1,30 @@
-- Drop the old indexes
drop index idx_post_aggregates_newest_comment_time,
idx_post_aggregates_comments,
idx_post_aggregates_hot,
idx_post_aggregates_active,
idx_post_aggregates_score,
idx_post_aggregates_published;
-- All of the post fetching queries now start with either
-- featured_local desc, or featured_community desc, then the other sorts.
-- So you now need to double these indexes
create index idx_post_aggregates_featured_local_newest_comment_time on post_aggregates (featured_local desc, newest_comment_time desc);
create index idx_post_aggregates_featured_community_newest_comment_time on post_aggregates (featured_community desc, newest_comment_time desc);
create index idx_post_aggregates_featured_local_comments on post_aggregates (featured_local desc, comments desc);
create index idx_post_aggregates_featured_community_comments on post_aggregates (featured_community desc, comments desc);
create index idx_post_aggregates_featured_local_hot on post_aggregates (featured_local desc, hot_rank(score, published) desc, published desc);
create index idx_post_aggregates_featured_community_hot on post_aggregates (featured_community desc, hot_rank(score, published) desc, published desc);
create index idx_post_aggregates_featured_local_active on post_aggregates (featured_local desc, hot_rank(score, newest_comment_time) desc, newest_comment_time desc);
create index idx_post_aggregates_featured_community_active on post_aggregates (featured_community desc, hot_rank(score, newest_comment_time) desc, newest_comment_time desc);
create index idx_post_aggregates_featured_local_score on post_aggregates (featured_local desc, score desc);
create index idx_post_aggregates_featured_community_score on post_aggregates (featured_community desc, score desc);
create index idx_post_aggregates_featured_local_published on post_aggregates (featured_local desc, published desc);
create index idx_post_aggregates_featured_community_published on post_aggregates (featured_community desc, published desc);