From 825aec208d966b54df9eeac6643e6d8129cf2253 Mon Sep 17 00:00:00 2001 From: hackerman <3372410+aeneasr@users.noreply.github.com> Date: Tue, 29 Oct 2024 13:02:10 +0100 Subject: [PATCH] feat: improve secondary indices for self service tables (#4179) --- internal/client-go/go.sum | 1 + ...20241029102200000001_self_service.down.sql | 26 +++++++++++++++++++ ...29102200000001_self_service.mysql.down.sql | 26 +++++++++++++++++++ ...1029102200000001_self_service.mysql.up.sql | 26 +++++++++++++++++++ .../20241029102200000001_self_service.up.sql | 26 +++++++++++++++++++ 5 files changed, 105 insertions(+) create mode 100644 persistence/sql/migrations/sql/20241029102200000001_self_service.down.sql create mode 100644 persistence/sql/migrations/sql/20241029102200000001_self_service.mysql.down.sql create mode 100644 persistence/sql/migrations/sql/20241029102200000001_self_service.mysql.up.sql create mode 100644 persistence/sql/migrations/sql/20241029102200000001_self_service.up.sql diff --git a/internal/client-go/go.sum b/internal/client-go/go.sum index c966c8ddfd0d..6cc3f5911d11 100644 --- a/internal/client-go/go.sum +++ b/internal/client-go/go.sum @@ -4,6 +4,7 @@ github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5y golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e h1:bRhVy7zSSasaqNksaRZiA5EEI+Ei4I1nO5Jh72wfHlg= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4 h1:YUO/7uOKsKeq9UokNS62b8FYywz3ker1l1vDZRCRefw= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= diff --git a/persistence/sql/migrations/sql/20241029102200000001_self_service.down.sql b/persistence/sql/migrations/sql/20241029102200000001_self_service.down.sql new file mode 100644 index 000000000000..9ca6f56a49c0 --- /dev/null +++ b/persistence/sql/migrations/sql/20241029102200000001_self_service.down.sql @@ -0,0 +1,26 @@ +CREATE INDEX IF NOT EXISTS selfservice_login_flows_nid_id_idx ON selfservice_login_flows (nid ASC, id ASC); +CREATE INDEX IF NOT EXISTS selfservice_login_flows_id_nid_idx ON selfservice_login_flows (id ASC, nid ASC); +DROP INDEX IF EXISTS selfservice_login_flows_nid_idx; + +CREATE INDEX IF NOT EXISTS selfservice_errors_errors_nid_id_idx ON selfservice_errors (nid ASC, id ASC); +DROP INDEX IF EXISTS selfservice_errors_nid_idx; + +CREATE INDEX IF NOT EXISTS selfservice_recovery_flows_nid_id_idx ON selfservice_recovery_flows (nid ASC, id ASC); +CREATE INDEX IF NOT EXISTS selfservice_recovery_flows_id_nid_idx ON selfservice_recovery_flows (id ASC, nid ASC); +CREATE INDEX IF NOT EXISTS selfservice_recovery_flows_recovered_identity_id_nid_idx ON selfservice_recovery_flows (recovered_identity_id ASC, nid ASC); +DROP INDEX IF EXISTS selfservice_recovery_flows_nid_idx; +DROP INDEX IF EXISTS selfservice_recovery_flows_recovered_identity_id_idx; + +CREATE INDEX IF NOT EXISTS selfservice_registration_flows_nid_id_idx ON selfservice_registration_flows (nid ASC, id ASC); +CREATE INDEX IF NOT EXISTS selfservice_registration_flows_id_nid_idx ON selfservice_registration_flows (id ASC, nid ASC); +DROP INDEX IF EXISTS selfservice_registration_flows_nid_idx; + +CREATE INDEX IF NOT EXISTS selfservice_settings_flows_nid_id_idx ON selfservice_settings_flows (nid ASC, id ASC); +CREATE INDEX IF NOT EXISTS selfservice_settings_flows_id_nid_idx ON selfservice_settings_flows (id ASC, nid ASC); +CREATE INDEX IF NOT EXISTS selfservice_settings_flows_identity_id_nid_idx ON selfservice_settings_flows (identity_id ASC, nid ASC); +DROP INDEX IF EXISTS selfservice_settings_flows_nid_idx; +DROP INDEX IF EXISTS selfservice_settings_flows_identity_id_idx; + +CREATE INDEX IF NOT EXISTS selfservice_verification_flows_nid_id_idx ON selfservice_verification_flows (nid ASC, id ASC); +CREATE INDEX IF NOT EXISTS selfservice_verification_flows_id_nid_idx ON selfservice_verification_flows (id ASC, nid ASC); +DROP INDEX IF EXISTS selfservice_verification_flows_nid_idx; diff --git a/persistence/sql/migrations/sql/20241029102200000001_self_service.mysql.down.sql b/persistence/sql/migrations/sql/20241029102200000001_self_service.mysql.down.sql new file mode 100644 index 000000000000..0d669e21fe52 --- /dev/null +++ b/persistence/sql/migrations/sql/20241029102200000001_self_service.mysql.down.sql @@ -0,0 +1,26 @@ +CREATE INDEX selfservice_login_flows_nid_id_idx ON selfservice_login_flows (nid ASC, id ASC); +CREATE INDEX selfservice_login_flows_id_nid_idx ON selfservice_login_flows (id ASC, nid ASC); +DROP INDEX selfservice_login_flows_nid_idx ON selfservice_login_flows; + +CREATE INDEX selfservice_errors_errors_nid_id_idx ON selfservice_errors (nid ASC, id ASC); +DROP INDEX selfservice_errors_nid_idx ON selfservice_errors; + +CREATE INDEX selfservice_recovery_flows_nid_id_idx ON selfservice_recovery_flows (nid ASC, id ASC); +CREATE INDEX selfservice_recovery_flows_id_nid_idx ON selfservice_recovery_flows (id ASC, nid ASC); +CREATE INDEX selfservice_recovery_flows_recovered_identity_id_nid_idx ON selfservice_recovery_flows (recovered_identity_id ASC, nid ASC); +DROP INDEX selfservice_recovery_flows_nid_idx ON selfservice_recovery_flows; +DROP INDEX selfservice_recovery_flows_recovered_identity_id_idx ON selfservice_recovery_flows; + +CREATE INDEX selfservice_registration_flows_nid_id_idx ON selfservice_registration_flows (nid ASC, id ASC); +CREATE INDEX selfservice_registration_flows_id_nid_idx ON selfservice_registration_flows (id ASC, nid ASC); +DROP INDEX selfservice_registration_flows_nid_idx ON selfservice_registration_flows; + +CREATE INDEX selfservice_settings_flows_nid_id_idx ON selfservice_settings_flows (nid ASC, id ASC); +CREATE INDEX selfservice_settings_flows_id_nid_idx ON selfservice_settings_flows (id ASC, nid ASC); +CREATE INDEX selfservice_settings_flows_identity_id_nid_idx ON selfservice_settings_flows (identity_id ASC, nid ASC); +DROP INDEX selfservice_settings_flows_nid_idx ON selfservice_settings_flows; +DROP INDEX selfservice_settings_flows_identity_id_idx ON selfservice_settings_flows; + +CREATE INDEX selfservice_verification_flows_nid_id_idx ON selfservice_verification_flows (nid ASC, id ASC); +CREATE INDEX selfservice_verification_flows_id_nid_idx ON selfservice_verification_flows (id ASC, nid ASC); +DROP INDEX selfservice_verification_flows_nid_idx ON selfservice_verification_flows; diff --git a/persistence/sql/migrations/sql/20241029102200000001_self_service.mysql.up.sql b/persistence/sql/migrations/sql/20241029102200000001_self_service.mysql.up.sql new file mode 100644 index 000000000000..678658c48e05 --- /dev/null +++ b/persistence/sql/migrations/sql/20241029102200000001_self_service.mysql.up.sql @@ -0,0 +1,26 @@ +CREATE INDEX selfservice_login_flows_nid_idx ON selfservice_login_flows (nid ASC); +DROP INDEX selfservice_login_flows_nid_id_idx ON selfservice_login_flows; +DROP INDEX selfservice_login_flows_id_nid_idx ON selfservice_login_flows; + +CREATE INDEX selfservice_errors_nid_idx ON selfservice_errors (nid ASC); +DROP INDEX selfservice_errors_errors_nid_id_idx ON selfservice_errors; + +CREATE INDEX selfservice_recovery_flows_nid_idx ON selfservice_recovery_flows (nid ASC); +CREATE INDEX selfservice_recovery_flows_recovered_identity_id_idx ON selfservice_recovery_flows (recovered_identity_id ASC); +DROP INDEX selfservice_recovery_flows_nid_id_idx ON selfservice_recovery_flows; +DROP INDEX selfservice_recovery_flows_id_nid_idx ON selfservice_recovery_flows; +DROP INDEX selfservice_recovery_flows_recovered_identity_id_nid_idx ON selfservice_recovery_flows; + +CREATE INDEX selfservice_registration_flows_nid_idx ON selfservice_registration_flows (nid ASC); +DROP INDEX selfservice_registration_flows_nid_id_idx ON selfservice_registration_flows; +DROP INDEX selfservice_registration_flows_id_nid_idx ON selfservice_registration_flows; + +CREATE INDEX selfservice_settings_flows_nid_idx ON selfservice_settings_flows (nid ASC); +CREATE INDEX selfservice_settings_flows_identity_id_idx ON selfservice_settings_flows (identity_id ASC); +DROP INDEX selfservice_settings_flows_nid_id_idx ON selfservice_settings_flows; +DROP INDEX selfservice_settings_flows_id_nid_idx ON selfservice_settings_flows; +DROP INDEX selfservice_settings_flows_identity_id_nid_idx ON selfservice_settings_flows; + +CREATE INDEX selfservice_verification_flows_nid_idx ON selfservice_verification_flows (nid ASC); +DROP INDEX selfservice_verification_flows_nid_id_idx ON selfservice_verification_flows; +DROP INDEX selfservice_verification_flows_id_nid_idx ON selfservice_verification_flows; diff --git a/persistence/sql/migrations/sql/20241029102200000001_self_service.up.sql b/persistence/sql/migrations/sql/20241029102200000001_self_service.up.sql new file mode 100644 index 000000000000..e40ce8dd8808 --- /dev/null +++ b/persistence/sql/migrations/sql/20241029102200000001_self_service.up.sql @@ -0,0 +1,26 @@ +CREATE INDEX IF NOT EXISTS selfservice_login_flows_nid_idx ON selfservice_login_flows (nid ASC); +DROP INDEX IF EXISTS selfservice_login_flows_nid_id_idx; +DROP INDEX IF EXISTS selfservice_login_flows_id_nid_idx; + +CREATE INDEX IF NOT EXISTS selfservice_errors_nid_idx ON selfservice_errors (nid ASC); +DROP INDEX IF EXISTS selfservice_errors_errors_nid_id_idx; + +CREATE INDEX IF NOT EXISTS selfservice_recovery_flows_recovered_identity_id_idx ON selfservice_recovery_flows (recovered_identity_id ASC); +CREATE INDEX IF NOT EXISTS selfservice_recovery_flows_nid_idx ON selfservice_recovery_flows (nid ASC); +DROP INDEX IF EXISTS selfservice_recovery_flows_nid_id_idx; +DROP INDEX IF EXISTS selfservice_recovery_flows_id_nid_idx; +DROP INDEX IF EXISTS selfservice_recovery_flows_recovered_identity_id_nid_idx; + +CREATE INDEX IF NOT EXISTS selfservice_registration_flows_nid_idx ON selfservice_registration_flows (nid ASC); +DROP INDEX IF EXISTS selfservice_registration_flows_nid_id_idx; +DROP INDEX IF EXISTS selfservice_registration_flows_id_nid_idx; + +CREATE INDEX IF NOT EXISTS selfservice_settings_flows_nid_idx ON selfservice_settings_flows (nid ASC); +CREATE INDEX IF NOT EXISTS selfservice_settings_flows_identity_id_idx ON selfservice_settings_flows (identity_id ASC); +DROP INDEX IF EXISTS selfservice_settings_flows_nid_id_idx; +DROP INDEX IF EXISTS selfservice_settings_flows_id_nid_idx; +DROP INDEX IF EXISTS selfservice_settings_flows_identity_id_nid_idx; + +CREATE INDEX IF NOT EXISTS selfservice_verification_flows_nid_idx ON selfservice_verification_flows (nid ASC); +DROP INDEX IF EXISTS selfservice_verification_flows_nid_id_idx; +DROP INDEX IF EXISTS selfservice_verification_flows_id_nid_idx;