From 981bd07f83e99f833d25da2658eb2ddf98c2aa22 Mon Sep 17 00:00:00 2001 From: Marc Shaw <mshaw@gitlab.com> Date: Mon, 29 Mar 2021 23:21:48 +1300 Subject: [PATCH] Add TargetProject And SourceBranch Index To MergeRequest MR: gitlab.com/gitlab-org/gitlab/-/merge_requests/57691 Issue: gitlab.com/gitlab-org/gitlab/-/issues/218410#note_535143110 --- ...ct_target_branch_index_to_merge_request.yml | 5 +++++ ...and_source_branch_index_to_merge_request.rb | 18 ++++++++++++++++++ db/schema_migrations/20210329095548 | 1 + db/structure.sql | 2 ++ 4 files changed, 26 insertions(+) create mode 100644 changelogs/unreleased/add_source_project_target_branch_index_to_merge_request.yml create mode 100644 db/migrate/20210329095548_add_target_project_and_source_branch_index_to_merge_request.rb create mode 100644 db/schema_migrations/20210329095548 diff --git a/changelogs/unreleased/add_source_project_target_branch_index_to_merge_request.yml b/changelogs/unreleased/add_source_project_target_branch_index_to_merge_request.yml new file mode 100644 index 000000000000..6bf231a5da51 --- /dev/null +++ b/changelogs/unreleased/add_source_project_target_branch_index_to_merge_request.yml @@ -0,0 +1,5 @@ +--- +title: Add TargetProject And SourceBranch Index To MergeRequest +merge_request: 57691 +author: +type: performance diff --git a/db/migrate/20210329095548_add_target_project_and_source_branch_index_to_merge_request.rb b/db/migrate/20210329095548_add_target_project_and_source_branch_index_to_merge_request.rb new file mode 100644 index 000000000000..d351de6bd77f --- /dev/null +++ b/db/migrate/20210329095548_add_target_project_and_source_branch_index_to_merge_request.rb @@ -0,0 +1,18 @@ +# frozen_string_literal: true + +class AddTargetProjectAndSourceBranchIndexToMergeRequest < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + INDEX_NAME = 'index_merge_requests_on_target_project_id_and_source_branch' + + disable_ddl_transaction! + + def up + add_concurrent_index :merge_requests, [:target_project_id, :source_branch], name: INDEX_NAME + end + + def down + remove_concurrent_index_by_name :epic_issues, INDEX_NAME + end +end diff --git a/db/schema_migrations/20210329095548 b/db/schema_migrations/20210329095548 new file mode 100644 index 000000000000..a3f65e8e4464 --- /dev/null +++ b/db/schema_migrations/20210329095548 @@ -0,0 +1 @@ +412d0cedef5c933c7de3a70ca2365fe0cfaa4087429ca418854092b6c37904f1 \ No newline at end of file diff --git a/db/structure.sql b/db/structure.sql index 96e1a788f315..0fbbd4ea008f 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -23090,6 +23090,8 @@ CREATE INDEX index_merge_requests_on_target_project_id_and_iid_and_state_id ON m CREATE INDEX index_merge_requests_on_target_project_id_and_iid_jira_title ON merge_requests USING btree (target_project_id, iid) WHERE ((title)::text ~ '[A-Z][A-Z_0-9]+-\d+'::text); +CREATE INDEX index_merge_requests_on_target_project_id_and_source_branch ON merge_requests USING btree (target_project_id, source_branch); + CREATE INDEX index_merge_requests_on_target_project_id_and_squash_commit_sha ON merge_requests USING btree (target_project_id, squash_commit_sha); CREATE INDEX index_merge_requests_on_target_project_id_and_target_branch ON merge_requests USING btree (target_project_id, target_branch) WHERE ((state_id = 1) AND (merge_when_pipeline_succeeds = true)); -- GitLab