diff --git a/db/post_migrate/20240403005214_add_concurrent_index_merge_requests_for_latest_diffs_with_state_merged.rb b/db/post_migrate/20240403005214_add_concurrent_index_merge_requests_for_latest_diffs_with_state_merged.rb
new file mode 100644
index 0000000000000000000000000000000000000000..0efd67c207f502cf36f9c1952b9ed6ce94c76f71
--- /dev/null
+++ b/db/post_migrate/20240403005214_add_concurrent_index_merge_requests_for_latest_diffs_with_state_merged.rb
@@ -0,0 +1,23 @@
+# frozen_string_literal: true
+
+class AddConcurrentIndexMergeRequestsForLatestDiffsWithStateMerged < Gitlab::Database::Migration[2.2]
+  milestone '17.0'
+
+  disable_ddl_transaction!
+
+  TABLE_NAME = :merge_requests
+  INDEX_NAME = 'index_merge_requests_for_latest_diffs_with_state_merged'
+
+  def up
+    add_concurrent_index(
+      TABLE_NAME,
+      [:latest_merge_request_diff_id, :target_project_id],
+      where: 'state_id = 3',
+      name: INDEX_NAME
+    )
+  end
+
+  def down
+    remove_concurrent_index_by_name TABLE_NAME, INDEX_NAME
+  end
+end
diff --git a/db/post_migrate/20240403005435_add_concurrent_index_on_merge_request_diffs_head_commit_sha.rb b/db/post_migrate/20240403005435_add_concurrent_index_on_merge_request_diffs_head_commit_sha.rb
new file mode 100644
index 0000000000000000000000000000000000000000..f512fd496ddf4aacb17b93adec8bb93bdcbf70a6
--- /dev/null
+++ b/db/post_migrate/20240403005435_add_concurrent_index_on_merge_request_diffs_head_commit_sha.rb
@@ -0,0 +1,18 @@
+# frozen_string_literal: true
+
+class AddConcurrentIndexOnMergeRequestDiffsHeadCommitSha < Gitlab::Database::Migration[2.2]
+  milestone '17.0'
+
+  disable_ddl_transaction!
+
+  TABLE_NAME = :merge_request_diffs
+  INDEX_NAME = 'index_on_merge_request_diffs_head_commit_sha'
+
+  def up
+    add_concurrent_index TABLE_NAME, :head_commit_sha, name: INDEX_NAME
+  end
+
+  def down
+    remove_concurrent_index_by_name TABLE_NAME, INDEX_NAME
+  end
+end
diff --git a/db/schema_migrations/20240403005214 b/db/schema_migrations/20240403005214
new file mode 100644
index 0000000000000000000000000000000000000000..1074553cd6156b5f492f609fcb1e637827baa693
--- /dev/null
+++ b/db/schema_migrations/20240403005214
@@ -0,0 +1 @@
+ae1827915b44735a90a6102ebd6df99fd4edf67169c6b2b704857d1d17073262
\ No newline at end of file
diff --git a/db/schema_migrations/20240403005435 b/db/schema_migrations/20240403005435
new file mode 100644
index 0000000000000000000000000000000000000000..b90a7efa2bfc31e3a4f92f935d1e63f42d54dce4
--- /dev/null
+++ b/db/schema_migrations/20240403005435
@@ -0,0 +1 @@
+949ed29ee9ce5cf874afed928c2276cf012b3fffb005d0e264db3d74a7e4a1a6
\ No newline at end of file
diff --git a/db/structure.sql b/db/structure.sql
index 937fdda48eac558afc58ef4599a02bdcb23bd988..99e44af747956eec9958a0743984ea3a592bccdd 100644
--- a/db/structure.sql
+++ b/db/structure.sql
@@ -25993,6 +25993,8 @@ CREATE INDEX index_merge_requests_compliance_violations_on_violating_user_id ON
 
 CREATE UNIQUE INDEX index_merge_requests_compliance_violations_unique_columns ON merge_requests_compliance_violations USING btree (merge_request_id, violating_user_id, reason);
 
+CREATE INDEX index_merge_requests_for_latest_diffs_with_state_merged ON merge_requests USING btree (latest_merge_request_diff_id, target_project_id) WHERE (state_id = 3);
+
 CREATE INDEX index_merge_requests_id_created_at_prepared_at ON merge_requests USING btree (created_at, id) WHERE (prepared_at IS NULL);
 
 CREATE INDEX index_merge_requests_on_assignee_id ON merge_requests USING btree (assignee_id);
@@ -26277,6 +26279,8 @@ CREATE INDEX index_on_issue_assignment_events_issue_id_action_created_at_id ON i
 
 CREATE INDEX index_on_label_links_all_columns ON label_links USING btree (target_id, label_id, target_type);
 
+CREATE INDEX index_on_merge_request_diffs_head_commit_sha ON merge_request_diffs USING btree (head_commit_sha);
+
 CREATE INDEX index_on_merge_request_reviewers_user_id_and_state ON merge_request_reviewers USING btree (user_id, state) WHERE (state = 2);
 
 CREATE INDEX index_on_merge_requests_for_latest_diffs ON merge_requests USING btree (target_project_id) INCLUDE (id, latest_merge_request_diff_id);