Add partial index for ci_builds on project_id and status
This commit is contained in:
parent
19ef77a1cd
commit
5733f5b875
3 changed files with 39 additions and 0 deletions
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: Add partial index for ci_builds on project_id and status
|
||||
merge_request: 23268
|
||||
author:
|
||||
type: performance
|
|
@ -0,0 +1,33 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
# See http://doc.gitlab.com/ce/development/migration_style_guide.html
|
||||
# for more information on how to write migrations for GitLab.
|
||||
|
||||
class AddCiBuildsPartialIndexOnProjectIdAndStatus < ActiveRecord::Migration
|
||||
include Gitlab::Database::MigrationHelpers
|
||||
|
||||
DOWNTIME = false
|
||||
|
||||
disable_ddl_transaction!
|
||||
|
||||
def up
|
||||
add_concurrent_index(*index_arguments)
|
||||
end
|
||||
|
||||
def down
|
||||
remove_concurrent_index(*index_arguments)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def index_arguments
|
||||
[
|
||||
:ci_builds,
|
||||
[:project_id, :status],
|
||||
{
|
||||
name: 'index_ci_builds_project_id_and_status_for_live_jobs_partial2',
|
||||
where: "(((type)::text = 'Ci::Build'::text) AND ((status)::text = ANY (ARRAY[('running'::character varying)::text, ('pending'::character varying)::text, ('created'::character varying)::text])))"
|
||||
}
|
||||
]
|
||||
end
|
||||
end
|
|
@ -352,6 +352,7 @@ ActiveRecord::Schema.define(version: 20181126153547) do
|
|||
t.index ["commit_id", "type", "ref"], name: "index_ci_builds_on_commit_id_and_type_and_ref", using: :btree
|
||||
t.index ["id"], name: "partial_index_ci_builds_on_id_with_legacy_artifacts", where: "(artifacts_file <> ''::text)", using: :btree
|
||||
t.index ["project_id", "id"], name: "index_ci_builds_on_project_id_and_id", using: :btree
|
||||
t.index ["project_id", "status"], name: "index_ci_builds_project_id_and_status_for_live_jobs_partial2", where: "(((type)::text = 'Ci::Build'::text) AND ((status)::text = ANY (ARRAY[('running'::character varying)::text, ('pending'::character varying)::text, ('created'::character varying)::text])))", using: :btree
|
||||
t.index ["protected"], name: "index_ci_builds_on_protected", using: :btree
|
||||
t.index ["runner_id"], name: "index_ci_builds_on_runner_id", using: :btree
|
||||
t.index ["scheduled_at"], name: "partial_index_ci_builds_on_scheduled_at_with_scheduled_jobs", where: "((scheduled_at IS NOT NULL) AND ((type)::text = 'Ci::Build'::text) AND ((status)::text = 'scheduled'::text))", using: :btree
|
||||
|
|
Loading…
Reference in a new issue