summaryrefslogtreecommitdiff
path: root/migrations
diff options
context:
space:
mode:
authorOwen Jacobson <owen@grimoire.ca>2024-10-23 00:31:53 -0400
committerOwen Jacobson <owen@grimoire.ca>2024-10-23 00:42:00 -0400
commit3fab58827017041168a769184469cff3722d6c38 (patch)
tree043b49c36976a1eec8fe4306a1e88d3cc2a27e62 /migrations
parent6f7f4410980edd13c57ad54697ebe99d739fef76 (diff)
Make sure (most) queries avoid table scans.
I've exempted inserts (they never scan in the first place), queries on `event_sequence` (at most one row), and the coalesce()s used for event replay (for now; these are obviously a performance risk area and need addressing). Method: ``` find .sqlx -name 'query-*.json' -exec jq -r '"explain query plan " + .query + ";"' {} + > explain.sql ``` Then go query by query through the resulting file.
Diffstat (limited to 'migrations')
-rw-r--r--migrations/20241023040731_missing_indices.sql17
1 files changed, 17 insertions, 0 deletions
diff --git a/migrations/20241023040731_missing_indices.sql b/migrations/20241023040731_missing_indices.sql
new file mode 100644
index 0000000..4bfd76d
--- /dev/null
+++ b/migrations/20241023040731_missing_indices.sql
@@ -0,0 +1,17 @@
+create index message_deleted_deleted_at
+on message_deleted (deleted_at);
+
+create index message_channel
+on message(channel);
+
+create index channel_created_sequence
+on channel (created_sequence);
+
+create index channel_created_at
+on channel (created_at);
+
+create index token_last_used_at
+on token (last_used_at);
+
+create index invite_issued_at
+on invite (issued_at);