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 0000000000000000000000000000000000000000..6bf231a5da51fced0b4fa990b14b2a50e9aa9264 --- /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 0000000000000000000000000000000000000000..d351de6bd77ff6fd2097a07adc6439b2c626444a --- /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 0000000000000000000000000000000000000000..a3f65e8e44645ddecab69afb63139d6eabb121e8 --- /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 96e1a788f315125dec2a9db19f92660036205f3b..0fbbd4ea008faf2a5e6135b30870fbecd8381488 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));