diff options
author | Stan Hu <stanhu@gmail.com> | 2017-01-21 15:47:43 +0000 |
---|---|---|
committer | Stan Hu <stanhu@gmail.com> | 2017-01-21 22:01:32 -0800 |
commit | e18d79f27f60cc9c44e70a1502ca2433d45ade6c (patch) | |
tree | cda93f86834e0e74153e1cf2d1dd7ac4e93b616d | |
parent | d78d2ba258ad09f6d1bd0cc3b0349bb4e257c046 (diff) | |
download | gitlab-ce-e18d79f27f60cc9c44e70a1502ca2433d45ade6c.tar.gz |
Merge branch 'add-index-on-ci-builds' into 'master'
Add index for ci_builds that makes shared runners query to run 100x faster.
See merge request !8683
-rw-r--r-- | db/migrate/20170121123724_add_index_to_ci_builds_for_status_runner_id_and_type.rb | 17 | ||||
-rw-r--r-- | db/migrate/20170121130655_add_index_to_ci_runners_for_is_shared.rb | 17 | ||||
-rw-r--r-- | db/schema.rb | 4 |
3 files changed, 37 insertions, 1 deletions
diff --git a/db/migrate/20170121123724_add_index_to_ci_builds_for_status_runner_id_and_type.rb b/db/migrate/20170121123724_add_index_to_ci_builds_for_status_runner_id_and_type.rb new file mode 100644 index 00000000000..4ea953f2b78 --- /dev/null +++ b/db/migrate/20170121123724_add_index_to_ci_builds_for_status_runner_id_and_type.rb @@ -0,0 +1,17 @@ +class AddIndexToCiBuildsForStatusRunnerIdAndType < ActiveRecord::Migration + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + disable_ddl_transaction! + + def up + add_concurrent_index :ci_builds, [:status, :type, :runner_id] + end + + def down + if index_exists?(:ci_builds, [:status, :type, :runner_id]) + remove_index :ci_builds, column: [:status, :type, :runner_id] + end + end +end diff --git a/db/migrate/20170121130655_add_index_to_ci_runners_for_is_shared.rb b/db/migrate/20170121130655_add_index_to_ci_runners_for_is_shared.rb new file mode 100644 index 00000000000..620befcf4d7 --- /dev/null +++ b/db/migrate/20170121130655_add_index_to_ci_runners_for_is_shared.rb @@ -0,0 +1,17 @@ +class AddIndexToCiRunnersForIsShared < ActiveRecord::Migration + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + disable_ddl_transaction! + + def up + add_concurrent_index :ci_runners, :is_shared + end + + def down + if index_exists?(:ci_runners, :is_shared) + remove_index :ci_runners, :is_shared + end + end +end diff --git a/db/schema.rb b/db/schema.rb index 7815392c1c3..3c836db27fc 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 20170106172224) do +ActiveRecord::Schema.define(version: 20170121130655) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -224,6 +224,7 @@ ActiveRecord::Schema.define(version: 20170106172224) do add_index "ci_builds", ["gl_project_id"], name: "index_ci_builds_on_gl_project_id", using: :btree add_index "ci_builds", ["project_id"], name: "index_ci_builds_on_project_id", using: :btree add_index "ci_builds", ["runner_id"], name: "index_ci_builds_on_runner_id", using: :btree + add_index "ci_builds", ["status", "type", "runner_id"], name: "index_ci_builds_on_status_and_type_and_runner_id", using: :btree add_index "ci_builds", ["status"], name: "index_ci_builds_on_status", using: :btree add_index "ci_builds", ["token"], name: "index_ci_builds_on_token", unique: true, using: :btree @@ -327,6 +328,7 @@ ActiveRecord::Schema.define(version: 20170106172224) do t.boolean "locked", default: false, null: false end + add_index "ci_runners", ["is_shared"], name: "index_ci_runners_on_is_shared", using: :btree add_index "ci_runners", ["locked"], name: "index_ci_runners_on_locked", using: :btree add_index "ci_runners", ["token"], name: "index_ci_runners_on_token", using: :btree |