Improve indexes on merge_request_diffs
For getting the SHAs from an MR to find pipelines, we get the last 100 MR diffs for the MR, and find commits from those. This was un-indexed before, because the index was not a composite index on merge_request_diff_id, id. Changing that means that this scope can exclusively use indexes.
This commit is contained in:
parent
4ebbfe5d3e
commit
484ae2ee2d
|
@ -0,0 +1,17 @@
|
|||
class AddIndexOnMergeRequestDiffsMergeRequestIdAndId < ActiveRecord::Migration
|
||||
include Gitlab::Database::MigrationHelpers
|
||||
|
||||
DOWNTIME = false
|
||||
|
||||
disable_ddl_transaction!
|
||||
|
||||
def up
|
||||
add_concurrent_index(:merge_request_diffs, [:merge_request_id, :id])
|
||||
end
|
||||
|
||||
def down
|
||||
if index_exists?(:merge_request_diffs, [:merge_request_id, :id])
|
||||
remove_concurrent_index(:merge_request_diffs, [:merge_request_id, :id])
|
||||
end
|
||||
end
|
||||
end
|
|
@ -0,0 +1,17 @@
|
|||
class RemoveIndexOnMergeRequestDiffsMergeRequestDiffId < ActiveRecord::Migration
|
||||
include Gitlab::Database::MigrationHelpers
|
||||
|
||||
DOWNTIME = false
|
||||
|
||||
disable_ddl_transaction!
|
||||
|
||||
def up
|
||||
if index_exists?(:merge_request_diffs, :merge_request_id)
|
||||
remove_concurrent_index(:merge_request_diffs, :merge_request_id)
|
||||
end
|
||||
end
|
||||
|
||||
def down
|
||||
add_concurrent_index(:merge_request_diffs, :merge_request_id)
|
||||
end
|
||||
end
|
|
@ -1020,7 +1020,7 @@ ActiveRecord::Schema.define(version: 20171124132536) do
|
|||
t.string "start_commit_sha"
|
||||
end
|
||||
|
||||
add_index "merge_request_diffs", ["merge_request_id"], name: "index_merge_request_diffs_on_merge_request_id", using: :btree
|
||||
add_index "merge_request_diffs", ["merge_request_id", "id"], name: "index_merge_request_diffs_on_merge_request_id_and_id", using: :btree
|
||||
|
||||
create_table "merge_request_metrics", force: :cascade do |t|
|
||||
t.integer "merge_request_id", null: false
|
||||
|
|
Loading…
Reference in New Issue