From a231b5aef503ada90e37bd755a9574b858d8d60e Mon Sep 17 00:00:00 2001 From: Spike Curtis Date: Thu, 11 Apr 2024 10:05:53 +0400 Subject: [PATCH] feat: add src_id and dst_id indexes to tailnet_tunnels (#12911) Fixes #12780 Adds indexes to the `tailnet_tunnels` table to speed up `GetTailnetTunnelPeerIDs` and `GetTailnetTunnelPeerBindings` queries, which match on `src_id` and `dst_id`. --- coderd/database/dump.sql | 4 ++++ .../migrations/000206_add_tailnet_tunnels_indexes.down.sql | 2 ++ .../migrations/000206_add_tailnet_tunnels_indexes.up.sql | 3 +++ 3 files changed, 9 insertions(+) create mode 100644 coderd/database/migrations/000206_add_tailnet_tunnels_indexes.down.sql create mode 100644 coderd/database/migrations/000206_add_tailnet_tunnels_indexes.up.sql diff --git a/coderd/database/dump.sql b/coderd/database/dump.sql index 830f8a1825..03d3640f8d 100644 --- a/coderd/database/dump.sql +++ b/coderd/database/dump.sql @@ -1624,6 +1624,10 @@ CREATE INDEX idx_tailnet_clients_coordinator ON tailnet_clients USING btree (coo CREATE INDEX idx_tailnet_peers_coordinator ON tailnet_peers USING btree (coordinator_id); +CREATE INDEX idx_tailnet_tunnels_dst_id ON tailnet_tunnels USING hash (dst_id); + +CREATE INDEX idx_tailnet_tunnels_src_id ON tailnet_tunnels USING hash (src_id); + CREATE UNIQUE INDEX idx_users_email ON users USING btree (email) WHERE (deleted = false); CREATE UNIQUE INDEX idx_users_username ON users USING btree (username) WHERE (deleted = false); diff --git a/coderd/database/migrations/000206_add_tailnet_tunnels_indexes.down.sql b/coderd/database/migrations/000206_add_tailnet_tunnels_indexes.down.sql new file mode 100644 index 0000000000..475e509ac6 --- /dev/null +++ b/coderd/database/migrations/000206_add_tailnet_tunnels_indexes.down.sql @@ -0,0 +1,2 @@ +DROP INDEX idx_tailnet_tunnels_src_id; +DROP INDEX idx_tailnet_tunnels_dst_id; diff --git a/coderd/database/migrations/000206_add_tailnet_tunnels_indexes.up.sql b/coderd/database/migrations/000206_add_tailnet_tunnels_indexes.up.sql new file mode 100644 index 0000000000..42f5729e14 --- /dev/null +++ b/coderd/database/migrations/000206_add_tailnet_tunnels_indexes.up.sql @@ -0,0 +1,3 @@ +-- Since src_id and dst_id are UUIDs, we only ever compare them with equality, so hash is better +CREATE INDEX idx_tailnet_tunnels_src_id ON tailnet_tunnels USING hash (src_id); +CREATE INDEX idx_tailnet_tunnels_dst_id ON tailnet_tunnels USING hash (dst_id);