diff --git a/migrations/mysql/2026-09-02-120000_add_indexes/down.sql b/migrations/mysql/2026-09-02-120000_add_indexes/down.sql new file mode 100644 index 00000000..22eca210 --- /dev/null +++ b/migrations/mysql/2026-09-02-120000_add_indexes/down.sql @@ -0,0 +1,17 @@ +DROP INDEX idx_ciphers_user_uuid ON ciphers; +DROP INDEX idx_ciphers_organization_uuid ON ciphers; +DROP INDEX idx_attachments_cipher_uuid ON attachments; +DROP INDEX idx_folders_user_uuid ON folders; +DROP INDEX idx_folders_ciphers_folder_uuid ON folders_ciphers; +DROP INDEX idx_ciphers_collections_collection_uuid ON ciphers_collections; +DROP INDEX idx_favorites_cipher_uuid ON favorites; +DROP INDEX idx_devices_user_uuid ON devices; +DROP INDEX idx_collections_org_uuid ON collections; +DROP INDEX idx_users_collections_collection_uuid ON users_collections; +DROP INDEX idx_users_organizations_org_uuid ON users_organizations; +DROP INDEX idx_groups_organizations_uuid ON `groups`; +DROP INDEX idx_groups_users_users_organizations_uuid ON groups_users; +DROP INDEX idx_collections_groups_groups_uuid ON collections_groups; +DROP INDEX idx_event_org_uuid_event_date ON event; +DROP INDEX idx_event_cipher_uuid_event_date ON event; +DROP INDEX idx_event_event_date ON event; diff --git a/migrations/mysql/2026-09-02-120000_add_indexes/up.sql b/migrations/mysql/2026-09-02-120000_add_indexes/up.sql new file mode 100644 index 00000000..412bf96c --- /dev/null +++ b/migrations/mysql/2026-09-02-120000_add_indexes/up.sql @@ -0,0 +1,20 @@ +-- archives.cipher_uuid is left out: it is declared as an explicit FOREIGN KEY, +-- so InnoDB already maintains an index for it. Every other table below uses +-- inline REFERENCES, which MySQL parses and ignores, so no index exists. +CREATE INDEX idx_ciphers_user_uuid ON ciphers (user_uuid); +CREATE INDEX idx_ciphers_organization_uuid ON ciphers (organization_uuid); +CREATE INDEX idx_attachments_cipher_uuid ON attachments (cipher_uuid); +CREATE INDEX idx_folders_user_uuid ON folders (user_uuid); +CREATE INDEX idx_folders_ciphers_folder_uuid ON folders_ciphers (folder_uuid); +CREATE INDEX idx_ciphers_collections_collection_uuid ON ciphers_collections (collection_uuid); +CREATE INDEX idx_favorites_cipher_uuid ON favorites (cipher_uuid); +CREATE INDEX idx_devices_user_uuid ON devices (user_uuid); +CREATE INDEX idx_collections_org_uuid ON collections (org_uuid); +CREATE INDEX idx_users_collections_collection_uuid ON users_collections (collection_uuid); +CREATE INDEX idx_users_organizations_org_uuid ON users_organizations (org_uuid); +CREATE INDEX idx_groups_organizations_uuid ON `groups` (organizations_uuid); +CREATE INDEX idx_groups_users_users_organizations_uuid ON groups_users (users_organizations_uuid); +CREATE INDEX idx_collections_groups_groups_uuid ON collections_groups (groups_uuid); +CREATE INDEX idx_event_org_uuid_event_date ON event (org_uuid, event_date); +CREATE INDEX idx_event_cipher_uuid_event_date ON event (cipher_uuid, event_date); +CREATE INDEX idx_event_event_date ON event (event_date); diff --git a/migrations/postgresql/2026-09-02-120000_add_indexes/down.sql b/migrations/postgresql/2026-09-02-120000_add_indexes/down.sql new file mode 100644 index 00000000..3c4690c0 --- /dev/null +++ b/migrations/postgresql/2026-09-02-120000_add_indexes/down.sql @@ -0,0 +1,18 @@ +DROP INDEX idx_ciphers_user_uuid; +DROP INDEX idx_ciphers_organization_uuid; +DROP INDEX idx_attachments_cipher_uuid; +DROP INDEX idx_folders_user_uuid; +DROP INDEX idx_folders_ciphers_folder_uuid; +DROP INDEX idx_ciphers_collections_collection_uuid; +DROP INDEX idx_favorites_cipher_uuid; +DROP INDEX idx_archives_cipher_uuid; +DROP INDEX idx_devices_user_uuid; +DROP INDEX idx_collections_org_uuid; +DROP INDEX idx_users_collections_collection_uuid; +DROP INDEX idx_users_organizations_org_uuid; +DROP INDEX idx_groups_organizations_uuid; +DROP INDEX idx_groups_users_users_organizations_uuid; +DROP INDEX idx_collections_groups_groups_uuid; +DROP INDEX idx_event_org_uuid_event_date; +DROP INDEX idx_event_cipher_uuid_event_date; +DROP INDEX idx_event_event_date; diff --git a/migrations/postgresql/2026-09-02-120000_add_indexes/up.sql b/migrations/postgresql/2026-09-02-120000_add_indexes/up.sql new file mode 100644 index 00000000..c1059b34 --- /dev/null +++ b/migrations/postgresql/2026-09-02-120000_add_indexes/up.sql @@ -0,0 +1,18 @@ +CREATE INDEX idx_ciphers_user_uuid ON ciphers (user_uuid); +CREATE INDEX idx_ciphers_organization_uuid ON ciphers (organization_uuid); +CREATE INDEX idx_attachments_cipher_uuid ON attachments (cipher_uuid); +CREATE INDEX idx_folders_user_uuid ON folders (user_uuid); +CREATE INDEX idx_folders_ciphers_folder_uuid ON folders_ciphers (folder_uuid); +CREATE INDEX idx_ciphers_collections_collection_uuid ON ciphers_collections (collection_uuid); +CREATE INDEX idx_favorites_cipher_uuid ON favorites (cipher_uuid); +CREATE INDEX idx_archives_cipher_uuid ON archives (cipher_uuid); +CREATE INDEX idx_devices_user_uuid ON devices (user_uuid); +CREATE INDEX idx_collections_org_uuid ON collections (org_uuid); +CREATE INDEX idx_users_collections_collection_uuid ON users_collections (collection_uuid); +CREATE INDEX idx_users_organizations_org_uuid ON users_organizations (org_uuid); +CREATE INDEX idx_groups_organizations_uuid ON groups (organizations_uuid); +CREATE INDEX idx_groups_users_users_organizations_uuid ON groups_users (users_organizations_uuid); +CREATE INDEX idx_collections_groups_groups_uuid ON collections_groups (groups_uuid); +CREATE INDEX idx_event_org_uuid_event_date ON event (org_uuid, event_date); +CREATE INDEX idx_event_cipher_uuid_event_date ON event (cipher_uuid, event_date); +CREATE INDEX idx_event_event_date ON event (event_date); diff --git a/migrations/sqlite/2026-09-02-120000_add_indexes/down.sql b/migrations/sqlite/2026-09-02-120000_add_indexes/down.sql new file mode 100644 index 00000000..3c4690c0 --- /dev/null +++ b/migrations/sqlite/2026-09-02-120000_add_indexes/down.sql @@ -0,0 +1,18 @@ +DROP INDEX idx_ciphers_user_uuid; +DROP INDEX idx_ciphers_organization_uuid; +DROP INDEX idx_attachments_cipher_uuid; +DROP INDEX idx_folders_user_uuid; +DROP INDEX idx_folders_ciphers_folder_uuid; +DROP INDEX idx_ciphers_collections_collection_uuid; +DROP INDEX idx_favorites_cipher_uuid; +DROP INDEX idx_archives_cipher_uuid; +DROP INDEX idx_devices_user_uuid; +DROP INDEX idx_collections_org_uuid; +DROP INDEX idx_users_collections_collection_uuid; +DROP INDEX idx_users_organizations_org_uuid; +DROP INDEX idx_groups_organizations_uuid; +DROP INDEX idx_groups_users_users_organizations_uuid; +DROP INDEX idx_collections_groups_groups_uuid; +DROP INDEX idx_event_org_uuid_event_date; +DROP INDEX idx_event_cipher_uuid_event_date; +DROP INDEX idx_event_event_date; diff --git a/migrations/sqlite/2026-09-02-120000_add_indexes/up.sql b/migrations/sqlite/2026-09-02-120000_add_indexes/up.sql new file mode 100644 index 00000000..c1059b34 --- /dev/null +++ b/migrations/sqlite/2026-09-02-120000_add_indexes/up.sql @@ -0,0 +1,18 @@ +CREATE INDEX idx_ciphers_user_uuid ON ciphers (user_uuid); +CREATE INDEX idx_ciphers_organization_uuid ON ciphers (organization_uuid); +CREATE INDEX idx_attachments_cipher_uuid ON attachments (cipher_uuid); +CREATE INDEX idx_folders_user_uuid ON folders (user_uuid); +CREATE INDEX idx_folders_ciphers_folder_uuid ON folders_ciphers (folder_uuid); +CREATE INDEX idx_ciphers_collections_collection_uuid ON ciphers_collections (collection_uuid); +CREATE INDEX idx_favorites_cipher_uuid ON favorites (cipher_uuid); +CREATE INDEX idx_archives_cipher_uuid ON archives (cipher_uuid); +CREATE INDEX idx_devices_user_uuid ON devices (user_uuid); +CREATE INDEX idx_collections_org_uuid ON collections (org_uuid); +CREATE INDEX idx_users_collections_collection_uuid ON users_collections (collection_uuid); +CREATE INDEX idx_users_organizations_org_uuid ON users_organizations (org_uuid); +CREATE INDEX idx_groups_organizations_uuid ON groups (organizations_uuid); +CREATE INDEX idx_groups_users_users_organizations_uuid ON groups_users (users_organizations_uuid); +CREATE INDEX idx_collections_groups_groups_uuid ON collections_groups (groups_uuid); +CREATE INDEX idx_event_org_uuid_event_date ON event (org_uuid, event_date); +CREATE INDEX idx_event_cipher_uuid_event_date ON event (cipher_uuid, event_date); +CREATE INDEX idx_event_event_date ON event (event_date);