From 880e3eeca5715faaf520c0cfa3f8204d238c7059 Mon Sep 17 00:00:00 2001 From: Felipe Artur <felipefac@gmail.com> Date: Mon, 29 Jan 2024 15:07:01 -0300 Subject: [PATCH] Create index to support group direct members count Create index syncrhonously to support group direct members count. Index was previously created async with: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/142719 Changelog: other --- ...index_members_on_source_and_type_and_id.rb | 21 +++++++++++++++++++ db/schema_migrations/20240129175213 | 1 + db/structure.sql | 2 ++ 3 files changed, 24 insertions(+) create mode 100644 db/post_migrate/20240129175213_create_index_members_on_source_and_type_and_id.rb create mode 100644 db/schema_migrations/20240129175213 diff --git a/db/post_migrate/20240129175213_create_index_members_on_source_and_type_and_id.rb b/db/post_migrate/20240129175213_create_index_members_on_source_and_type_and_id.rb new file mode 100644 index 0000000000000..487e158025603 --- /dev/null +++ b/db/post_migrate/20240129175213_create_index_members_on_source_and_type_and_id.rb @@ -0,0 +1,21 @@ +# frozen_string_literal: true + +class CreateIndexMembersOnSourceAndTypeAndId < Gitlab::Database::Migration[2.2] + disable_ddl_transaction! + milestone '16.9' + + INDEX_NAME = 'index_members_on_source_and_type_and_id' + + def up + # This index was created async previously, check https://gitlab.com/gitlab-org/gitlab/-/merge_requests/142719. + add_concurrent_index( + :members, [:source_id, :source_type, :type, :id], + where: 'invite_token IS NULL', + name: INDEX_NAME + ) + end + + def down + remove_concurrent_index_by_name :members, INDEX_NAME + end +end diff --git a/db/schema_migrations/20240129175213 b/db/schema_migrations/20240129175213 new file mode 100644 index 0000000000000..5cd3d11bb801f --- /dev/null +++ b/db/schema_migrations/20240129175213 @@ -0,0 +1 @@ +9892eca1a5ed84b8ba87efe9e1ad740a9359412bc32f6eafc2f705b22f274914 \ No newline at end of file diff --git a/db/structure.sql b/db/structure.sql index a8e521109fd26..f1fc201dfafcc 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -34243,6 +34243,8 @@ CREATE INDEX index_members_on_requested_at ON members USING btree (requested_at) CREATE INDEX index_members_on_source_and_type_and_access_level ON members USING btree (source_id, source_type, type, access_level); +CREATE INDEX index_members_on_source_and_type_and_id ON members USING btree (source_id, source_type, type, id) WHERE (invite_token IS NULL); + CREATE INDEX index_members_on_source_state_type_access_level_and_user_id ON members USING btree (source_id, source_type, state, type, access_level, user_id) WHERE ((requested_at IS NULL) AND (invite_token IS NULL)); CREATE INDEX index_members_on_user_id_and_access_level_requested_at_is_null ON members USING btree (user_id, access_level) WHERE (requested_at IS NULL); -- GitLab