From 16275ec926aeed8b361a30c2c32c154b3538fd0a Mon Sep 17 00:00:00 2001 From: Lukas Matt Date: Sun, 27 Mar 2016 12:42:06 +0200 Subject: [PATCH] account_deletions get stuck while selecting participations Following query takes over 20 minutes and fills up the database: SELECT * FROM participations WHERE author_id = XXXXX On servers with a huge participations-table this is a serious performance issue which is easily fixed by the author_id index Signed-off-by: Lukas Matt --- .../20160327103605_add_author_id_index_to_participations.rb | 5 +++++ db/schema.rb | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 db/migrate/20160327103605_add_author_id_index_to_participations.rb diff --git a/db/migrate/20160327103605_add_author_id_index_to_participations.rb b/db/migrate/20160327103605_add_author_id_index_to_participations.rb new file mode 100644 index 000000000..8a6382aeb --- /dev/null +++ b/db/migrate/20160327103605_add_author_id_index_to_participations.rb @@ -0,0 +1,5 @@ +class AddAuthorIdIndexToParticipations < ActiveRecord::Migration + def change + add_index :participations, :author_id, :using => :btree + end +end diff --git a/db/schema.rb b/db/schema.rb index e3c213dbc..8fa4f0d5b 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: 20160307142216) do +ActiveRecord::Schema.define(version: 20160327103605) do create_table "account_deletions", force: :cascade do |t| t.string "diaspora_handle", limit: 255 @@ -320,6 +320,7 @@ ActiveRecord::Schema.define(version: 20160307142216) do t.integer "count", limit: 4, default: 1, null: false end + add_index "participations", ["author_id"], name: "index_participations_on_author_id", using: :btree add_index "participations", ["guid"], name: "index_participations_on_guid", length: {"guid"=>191}, using: :btree add_index "participations", ["target_id", "target_type", "author_id"], name: "index_participations_on_target_id_and_target_type_and_author_id", using: :btree