From e1ace7e44a20be00a6db8905e5923094a37dd2ac Mon Sep 17 00:00:00 2001 From: Neil Alexander Date: Wed, 16 Dec 2020 18:16:39 +0000 Subject: [PATCH] Add event ID index on current state table (helps performance) (#1649) --- syncapi/storage/postgres/current_room_state_table.go | 2 ++ syncapi/storage/sqlite3/current_room_state_table.go | 2 ++ 2 files changed, 4 insertions(+) diff --git a/syncapi/storage/postgres/current_room_state_table.go b/syncapi/storage/postgres/current_room_state_table.go index 554163e5..77e1e363 100644 --- a/syncapi/storage/postgres/current_room_state_table.go +++ b/syncapi/storage/postgres/current_room_state_table.go @@ -58,6 +58,8 @@ CREATE TABLE IF NOT EXISTS syncapi_current_room_state ( CREATE UNIQUE INDEX IF NOT EXISTS syncapi_event_id_idx ON syncapi_current_room_state(event_id, room_id, type, sender, contains_url); -- for querying membership states of users CREATE INDEX IF NOT EXISTS syncapi_membership_idx ON syncapi_current_room_state(type, state_key, membership) WHERE membership IS NOT NULL AND membership != 'leave'; +-- for querying state by event IDs +CREATE UNIQUE INDEX IF NOT EXISTS syncapi_current_room_state_eventid_idx ON syncapi_current_room_state(event_id); ` const upsertRoomStateSQL = "" + diff --git a/syncapi/storage/sqlite3/current_room_state_table.go b/syncapi/storage/sqlite3/current_room_state_table.go index f16a6612..ac659057 100644 --- a/syncapi/storage/sqlite3/current_room_state_table.go +++ b/syncapi/storage/sqlite3/current_room_state_table.go @@ -46,6 +46,8 @@ CREATE TABLE IF NOT EXISTS syncapi_current_room_state ( CREATE UNIQUE INDEX IF NOT EXISTS syncapi_event_id_idx ON syncapi_current_room_state(event_id, room_id, type, sender, contains_url); -- for querying membership states of users -- CREATE INDEX IF NOT EXISTS syncapi_membership_idx ON syncapi_current_room_state(type, state_key, membership) WHERE membership IS NOT NULL AND membership != 'leave'; +-- for querying state by event IDs +CREATE UNIQUE INDEX IF NOT EXISTS syncapi_current_room_state_eventid_idx ON syncapi_current_room_state(event_id); ` const upsertRoomStateSQL = "" +