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