diff options
author | Stan Hu <stanhu@gmail.com> | 2018-03-07 00:30:10 +0300 |
---|---|---|
committer | Stan Hu <stanhu@gmail.com> | 2018-03-08 08:39:20 +0300 |
commit | 609a434c6dc2c6d4aafb359348c129fc01d264e3 (patch) | |
tree | 260d371bd3e6b82edbc0c87704b5a59ad65f76ce /db/schema.rb | |
parent | 7734e85bc6592c5ad3330c611c5f83a051b680b0 (diff) |
Adding missing indexes on taggings table
API requests were timing out because `tag_id` was missing an index. These
migrations were imported by running https://github.com/mbleigh/acts-as-taggable-on#post-installation:
```
bundle exec rake acts_as_taggable_on_engine:install:migrations
```
It looks like the `acts-as-tagglable` gem added the indexes in v4.0.0, but
when we upgraded from v3.5.0 (back in 2016 via
f571aeb5ce38dce1a9e5f58d76360836d4a8f8a0) we did not add them.
On staging, there are about 10.7 million rows on the `taggings` table. It took about 30 seconds for each index to be created.
On production, there are about 17.4 million rows, so I suspect the time to be about a minute per index.
Closes #43927
Diffstat (limited to 'db/schema.rb')
-rw-r--r-- | db/schema.rb | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/db/schema.rb b/db/schema.rb index b93e6fa594b..9fabde75625 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -1733,7 +1733,9 @@ ActiveRecord::Schema.define(version: 20180307012445) do end add_index "taggings", ["tag_id", "taggable_id", "taggable_type", "context", "tagger_id", "tagger_type"], name: "taggings_idx", unique: true, using: :btree + add_index "taggings", ["tag_id"], name: "index_taggings_on_tag_id", using: :btree add_index "taggings", ["taggable_id", "taggable_type", "context"], name: "index_taggings_on_taggable_id_and_taggable_type_and_context", using: :btree + add_index "taggings", ["taggable_id", "taggable_type"], name: "index_taggings_on_taggable_id_and_taggable_type", using: :btree create_table "tags", force: :cascade do |t| t.string "name" |