summaryrefslogtreecommitdiffstats
path: root/server/query_testing
diff options
context:
space:
mode:
authorDessalines <dessalines@users.noreply.github.com>2020-07-07 10:54:44 -0400
committerGitHub <noreply@github.com>2020-07-07 10:54:44 -0400
commitf4565d06030b59a4ef646ac1a890324f518ad7f0 (patch)
tree04756fa289b7f475e7398271110241bce2be7e04 /server/query_testing
parentaaa536b454dcee516749cd28455072e0dd5f0be6 (diff)
Remove materialized views. (#908)
* One pass at materialized views, only about 30% faster, not good. * Before merging master to test out bans. * DB Rework working, still need more testing. * Fixing accidental addadmin bug from asonix async merge. * Fixing the comment delete trigger * Some more DB additions. - Adding a hot_rank desc, published desc index to post_aggregates_fast. - Removed WITH CTE queries in favor of direct selects (since CTEs cant use indexes) * Removing some unecessary indexes. * Some more DB optimizings - Changing the fast_id pkeys to just ids on the fast tables. - Removing the private_message_fast, since the view contains no aggregates. - Comment and post voting now no longer pull from the views, they update the counts directly. * Adding community_agg_view and post_agg_views Credit: eiknat. * Adding user and comment_view migrations. (comment_view still broken) * Adding more views. Credit Eiknat.
Diffstat (limited to 'server/query_testing')
-rwxr-xr-xserver/query_testing/generate_explain_reports.sh29
1 files changed, 20 insertions, 9 deletions
diff --git a/server/query_testing/generate_explain_reports.sh b/server/query_testing/generate_explain_reports.sh
index 6ce7dc42..439b46a7 100755
--- a/server/query_testing/generate_explain_reports.sh
+++ b/server/query_testing/generate_explain_reports.sh
@@ -1,31 +1,42 @@
#!/bin/bash
set -e
+# You can import these to http://tatiyants.com/pev/#/plans/new
+
# Do the views first
-echo "explain (analyze, format json) select * from user_mview" > explain.sql
-psql -qAt -U lemmy -f explain.sql > user_view.json
+echo "explain (analyze, format json) select * from user_fast" > explain.sql
+psql -qAt -U lemmy -f explain.sql > user_fast.json
-echo "explain (analyze, format json) select * from post_mview where user_id is null order by hot_rank desc, published desc" > explain.sql
+echo "explain (analyze, format json) select * from post_view where user_id is null order by hot_rank desc, published desc" > explain.sql
psql -qAt -U lemmy -f explain.sql > post_view.json
-echo "explain (analyze, format json) select * from comment_mview where user_id is null" > explain.sql
+echo "explain (analyze, format json) select * from post_fast_view where user_id is null order by hot_rank desc, published desc" > explain.sql
+psql -qAt -U lemmy -f explain.sql > post_fast_view.json
+
+echo "explain (analyze, format json) select * from comment_view where user_id is null" > explain.sql
psql -qAt -U lemmy -f explain.sql > comment_view.json
-echo "explain (analyze, format json) select * from community_mview where user_id is null order by hot_rank desc" > explain.sql
+echo "explain (analyze, format json) select * from comment_fast_view where user_id is null" > explain.sql
+psql -qAt -U lemmy -f explain.sql > comment_fast_view.json
+
+echo "explain (analyze, format json) select * from community_view where user_id is null order by hot_rank desc" > explain.sql
psql -qAt -U lemmy -f explain.sql > community_view.json
+echo "explain (analyze, format json) select * from community_fast_view where user_id is null order by hot_rank desc" > explain.sql
+psql -qAt -U lemmy -f explain.sql > community_fast_view.json
+
echo "explain (analyze, format json) select * from site_view limit 1" > explain.sql
psql -qAt -U lemmy -f explain.sql > site_view.json
-echo "explain (analyze, format json) select * from reply_view where user_id = 34 and recipient_id = 34" > explain.sql
-psql -qAt -U lemmy -f explain.sql > reply_view.json
+echo "explain (analyze, format json) select * from reply_fast_view where user_id = 34 and recipient_id = 34" > explain.sql
+psql -qAt -U lemmy -f explain.sql > reply_fast_view.json
echo "explain (analyze, format json) select * from user_mention_view where user_id = 34 and recipient_id = 34" > explain.sql
psql -qAt -U lemmy -f explain.sql > user_mention_view.json
-echo "explain (analyze, format json) select * from user_mention_mview where user_id = 34 and recipient_id = 34" > explain.sql
-psql -qAt -U lemmy -f explain.sql > user_mention_mview.json
+echo "explain (analyze, format json) select * from user_mention_fast_view where user_id = 34 and recipient_id = 34" > explain.sql
+psql -qAt -U lemmy -f explain.sql > user_mention_fast_view.json
grep "Execution Time" *.json