Skip to content

Commit

Permalink
feat: optimize identity-related secondary indices (#4182)
Browse files Browse the repository at this point in the history
  • Loading branch information
aeneasr authored Oct 30, 2024
1 parent 2aabe12 commit 53874c1
Show file tree
Hide file tree
Showing 4 changed files with 56 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
CREATE INDEX IF NOT EXISTS identities_id_nid_idx ON identities (id ASC, nid ASC);

CREATE INDEX IF NOT EXISTS identity_recovery_addresses_status_via_idx ON identity_recovery_addresses (nid ASC, via ASC, value ASC);
CREATE INDEX IF NOT EXISTS identity_recovery_addresses_nid_identity_id_idx ON identity_recovery_addresses (identity_id ASC, nid ASC);
CREATE INDEX IF NOT EXISTS identity_recovery_addresses_nid_id_idx ON identity_recovery_addresses (nid ASC, id ASC);
CREATE INDEX IF NOT EXISTS identity_recovery_addresses_id_nid_idx ON identity_recovery_addresses (id ASC, nid ASC);
DROP INDEX IF EXISTS identity_recovery_addresses_identity_id_idx;

CREATE INDEX IF NOT EXISTS identity_verifiable_addresses_status_via_idx ON identity_verifiable_addresses (nid ASC, via ASC, value ASC);
CREATE INDEX IF NOT EXISTS identity_verifiable_addresses_nid_identity_id_idx ON identity_verifiable_addresses (identity_id ASC, nid ASC);
CREATE INDEX IF NOT EXISTS identity_verifiable_addresses_nid_id_idx ON identity_verifiable_addresses (nid ASC, id ASC);
CREATE INDEX IF NOT EXISTS identity_verifiable_addresses_id_nid_idx ON identity_verifiable_addresses (id ASC, nid ASC);
DROP INDEX IF EXISTS identity_verifiable_addresses_identity_id_idx;
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
CREATE INDEX identities_id_nid_idx ON identities (id ASC, nid ASC);

CREATE INDEX identity_recovery_addresses_status_via_idx ON identity_recovery_addresses (nid ASC, via ASC, value ASC);
-- While this index did not exist in the past, it is needed in MySQL for foreign key relations. We accept
-- that this index is "unaccounted" for if we execute down and then up migrations on MySQL.
CREATE INDEX identity_recovery_addresses_identity_id_fk_idx ON identity_recovery_addresses (identity_id ASC);
CREATE INDEX identity_recovery_addresses_nid_id_idx ON identity_recovery_addresses (nid ASC, id ASC);
CREATE INDEX identity_recovery_addresses_id_nid_idx ON identity_recovery_addresses (id ASC, nid ASC);
DROP INDEX identity_recovery_addresses_identity_id_idx ON identity_recovery_addresses;

CREATE INDEX identity_verifiable_addresses_status_via_idx ON identity_verifiable_addresses (nid ASC, via ASC, value ASC);
-- While this index did not exist in the past, it is needed in MySQL for foreign key relations. We accept
-- that this index is "unaccounted" for if we execute down and then up migrations on MySQL.
CREATE INDEX identity_verifiable_addresses_identity_id_fk_idx ON identity_verifiable_addresses (identity_id ASC);
CREATE INDEX identity_verifiable_addresses_nid_id_idx ON identity_verifiable_addresses (nid ASC, id ASC);
CREATE INDEX identity_verifiable_addresses_id_nid_idx ON identity_verifiable_addresses (id ASC, nid ASC);
DROP INDEX identity_verifiable_addresses_identity_id_idx ON identity_verifiable_addresses;
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
DROP INDEX identities_id_nid_idx ON identities;

CREATE INDEX identity_recovery_addresses_identity_id_idx ON identity_recovery_addresses (identity_id ASC);
DROP INDEX identity_recovery_addresses_status_via_idx ON identity_recovery_addresses;
-- DROP INDEX identity_recovery_addresses_nid_identity_id_idx ON identity_recovery_addresses;
DROP INDEX identity_recovery_addresses_nid_id_idx ON identity_recovery_addresses;
DROP INDEX identity_recovery_addresses_id_nid_idx ON identity_recovery_addresses;

CREATE INDEX identity_verifiable_addresses_identity_id_idx ON identity_verifiable_addresses (identity_id ASC);
DROP INDEX identity_verifiable_addresses_status_via_idx ON identity_verifiable_addresses;
-- DROP INDEX identity_verifiable_addresses_nid_identity_id_idx ON identity_verifiable_addresses;
DROP INDEX identity_verifiable_addresses_nid_id_idx ON identity_verifiable_addresses;
DROP INDEX identity_verifiable_addresses_id_nid_idx ON identity_verifiable_addresses;
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
DROP INDEX IF EXISTS identities_id_nid_idx;

CREATE INDEX IF NOT EXISTS identity_recovery_addresses_identity_id_idx ON identity_recovery_addresses(identity_id ASC);
DROP INDEX IF EXISTS identity_recovery_addresses_status_via_idx;
DROP INDEX IF EXISTS identity_recovery_addresses_nid_identity_id_idx;
DROP INDEX IF EXISTS identity_recovery_addresses_nid_id_idx;
DROP INDEX IF EXISTS identity_recovery_addresses_id_nid_idx;

CREATE INDEX IF NOT EXISTS identity_verifiable_addresses_identity_id_idx ON identity_verifiable_addresses (identity_id ASC);
DROP INDEX IF EXISTS identity_verifiable_addresses_status_via_idx;
DROP INDEX IF EXISTS identity_verifiable_addresses_nid_identity_id_idx;
DROP INDEX IF EXISTS identity_verifiable_addresses_nid_id_idx;
DROP INDEX IF EXISTS identity_verifiable_addresses_id_nid_idx;

0 comments on commit 53874c1

Please sign in to comment.