From 31122b71bcf29b4a034be4fc14770f4b8a45b2c5 Mon Sep 17 00:00:00 2001 From: Erik Johnston Date: Thu, 4 Apr 2024 11:05:40 +0100 Subject: [PATCH] Add missing index to `access_tokens` table (#17045) This was causing sequential scans when using refresh tokens. --- changelog.d/17045.misc | 1 + synapse/storage/databases/main/registration.py | 7 +++++++ 2 files changed, 8 insertions(+) create mode 100644 changelog.d/17045.misc diff --git a/changelog.d/17045.misc b/changelog.d/17045.misc new file mode 100644 index 000000000..0d042a43f --- /dev/null +++ b/changelog.d/17045.misc @@ -0,0 +1 @@ +Improve database performance by adding a missing index to `access_tokens.refresh_token_id`. diff --git a/synapse/storage/databases/main/registration.py b/synapse/storage/databases/main/registration.py index d939ade42..30a3ae305 100644 --- a/synapse/storage/databases/main/registration.py +++ b/synapse/storage/databases/main/registration.py @@ -2266,6 +2266,13 @@ class RegistrationStore(StatsStore, RegistrationBackgroundUpdateStore): ): super().__init__(database, db_conn, hs) + self.db_pool.updates.register_background_index_update( + update_name="access_tokens_refresh_token_id_idx", + index_name="access_tokens_refresh_token_id_idx", + table="access_tokens", + columns=("refresh_token_id",), + ) + self._ignore_unknown_session_error = ( hs.config.server.request_token_inhibit_3pid_errors )