Adding a person.admin index, and featured_local/community indexes. (#3479)
authorDessalines <dessalines@users.noreply.github.com>
Wed, 5 Jul 2023 11:00:41 +0000 (07:00 -0400)
committerGitHub <noreply@github.com>
Wed, 5 Jul 2023 11:00:41 +0000 (13:00 +0200)
migrations/2023-07-04-153335_add_optimized_indexes/down.sql [new file with mode: 0644]
migrations/2023-07-04-153335_add_optimized_indexes/up.sql [new file with mode: 0644]

diff --git a/migrations/2023-07-04-153335_add_optimized_indexes/down.sql b/migrations/2023-07-04-153335_add_optimized_indexes/down.sql
new file mode 100644 (file)
index 0000000..9b4996e
--- /dev/null
@@ -0,0 +1,27 @@
+-- Drop the new indexes
+drop index idx_person_admin;
+
+drop index idx_post_aggregates_featured_local_score;
+drop index idx_post_aggregates_featured_local_newest_comment_time;
+drop index idx_post_aggregates_featured_local_newest_comment_time_necro;
+drop index idx_post_aggregates_featured_local_hot;
+drop index idx_post_aggregates_featured_local_active;
+drop index idx_post_aggregates_featured_local_published;
+drop index idx_post_aggregates_published;
+
+drop index idx_post_aggregates_featured_community_score;
+drop index idx_post_aggregates_featured_community_newest_comment_time;
+drop index idx_post_aggregates_featured_community_newest_comment_time_necro;
+drop index idx_post_aggregates_featured_community_hot;
+drop index idx_post_aggregates_featured_community_active;
+drop index idx_post_aggregates_featured_community_published;
+
+-- Create single column indexes again
+create index idx_post_aggregates_score on post_aggregates (score desc);
+create index idx_post_aggregates_published on post_aggregates (published desc);
+create index idx_post_aggregates_newest_comment_time on post_aggregates (newest_comment_time desc);
+create index idx_post_aggregates_newest_comment_time_necro on post_aggregates (newest_comment_time_necro desc);
+create index idx_post_aggregates_featured_community on post_aggregates (featured_community desc);
+create index idx_post_aggregates_featured_local on post_aggregates (featured_local desc);
+create index idx_post_aggregates_hot on post_aggregates (hot_rank desc);
+create index idx_post_aggregates_active on post_aggregates (hot_rank_active desc);
diff --git a/migrations/2023-07-04-153335_add_optimized_indexes/up.sql b/migrations/2023-07-04-153335_add_optimized_indexes/up.sql
new file mode 100644 (file)
index 0000000..c2911df
--- /dev/null
@@ -0,0 +1,32 @@
+-- Create an admin person index
+create index idx_person_admin on person (admin);
+
+-- Compound indexes, using featured_, then the other sorts, proved to be much faster
+-- Drop the old indexes
+drop index idx_post_aggregates_score;
+drop index idx_post_aggregates_published;
+drop index idx_post_aggregates_newest_comment_time;
+drop index idx_post_aggregates_newest_comment_time_necro;
+drop index idx_post_aggregates_featured_community;
+drop index idx_post_aggregates_featured_local;
+drop index idx_post_aggregates_hot;
+drop index idx_post_aggregates_active;
+
+-- featured_local
+create index idx_post_aggregates_featured_local_score on post_aggregates (featured_local desc, score desc);
+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_local_newest_comment_time_necro on post_aggregates (featured_local desc, newest_comment_time_necro desc);
+create index idx_post_aggregates_featured_local_hot on post_aggregates (featured_local desc, hot_rank desc);
+create index idx_post_aggregates_featured_local_active on post_aggregates (featured_local desc, hot_rank_active desc);
+create index idx_post_aggregates_featured_local_published on post_aggregates (featured_local desc, published desc);
+create index idx_post_aggregates_published on post_aggregates (published desc);
+
+-- featured_community
+create index idx_post_aggregates_featured_community_score on post_aggregates (featured_community desc, score 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_community_newest_comment_time_necro on post_aggregates (featured_community desc, newest_comment_time_necro desc);
+create index idx_post_aggregates_featured_community_hot on post_aggregates (featured_community desc, hot_rank desc);
+create index idx_post_aggregates_featured_community_active on post_aggregates (featured_community desc, hot_rank_active desc);
+create index idx_post_aggregates_featured_community_published on post_aggregates (featured_community desc, published desc);
+
+