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));