Add (async) index on target_project_id for MR violations
What does this MR do and why?
Add index on target_project_id for MR violations. This is a follow-up to a performance discussion on MR !120636
-
Add index to speed up lookup of merge_request_compliance_violations for export to CSV
-
Refs: Create Index on violations table columns [targe... (#424390 - closed) • Sam Figueroa • 16.4
-
Refs: Export report from compliance violation report (#356791 - closed) • Sam Figueroa • 16.4 • On track
Screenshots or screen recordings
$> rake db:migrate
WARNING: This version of GitLab depends on gitlab-shell 14.27.0, but you're running 14.26.0. Please update gitlab-shell.
main: == [advisory_lock_connection] object_id: 226220, pg_backend_pid: 80090
main: == 20230906181457 AddIndexToViolationsOnTargetProjId: migrating ===============
main: -- index_exists?("merge_requests_compliance_violations", [:target_project_id, :id], {:name=>"i_compliance_violations_for_export", :algorithm=>:concurrently})
main: -> 0.0037s
main: -- add_index_options("merge_requests_compliance_violations", [:target_project_id, :id], {:name=>"i_compliance_violations_for_export", :algorithm=>:concurrently})
main: -> 0.0001s
main: == 20230906181457 AddIndexToViolationsOnTargetProjId: migrated (0.1939s) ======
main: == [advisory_lock_connection] object_id: 226220, pg_backend_pid: 80090
ci: == [advisory_lock_connection] object_id: 226200, pg_backend_pid: 82139
ci: == 20230906181457 AddIndexToViolationsOnTargetProjId: migrating ===============
ci: -- index_exists?("merge_requests_compliance_violations", [:target_project_id, :id], {:name=>"i_compliance_violations_for_export", :algorithm=>:concurrently})
ci: -> 0.0040s
ci: -- add_index_options("merge_requests_compliance_violations", [:target_project_id, :id], {:name=>"i_compliance_violations_for_export", :algorithm=>:concurrently})
ci: -> 0.0003s
ci: == 20230906181457 AddIndexToViolationsOnTargetProjId: migrated (0.1921s) ======
ci: == [advisory_lock_connection] object_id: 226200, pg_backend_pid: 82139
MR acceptance checklist
This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.
-
I have evaluated the MR acceptance checklist for this MR.
Edited by Sam Figueroa