From 6f5c0afe93e28375c736437b9bb19b48a7c54a5f Mon Sep 17 00:00:00 2001
From: takayamaki <fsgiko@gmail.com>
Date: Tue, 9 Jan 2018 23:00:19 +0900
Subject: [PATCH] add index on statuses for
 /api/v1/accounts/:account_id/statuses (#6202)

---
 ...statuses_for_api_v1_accounts_account_id_statuses.rb | 10 ++++++++++
 db/schema.rb                                           |  4 ++--
 2 files changed, 12 insertions(+), 2 deletions(-)
 create mode 100644 db/migrate/20180106000232_add_index_on_statuses_for_api_v1_accounts_account_id_statuses.rb

diff --git a/db/migrate/20180106000232_add_index_on_statuses_for_api_v1_accounts_account_id_statuses.rb b/db/migrate/20180106000232_add_index_on_statuses_for_api_v1_accounts_account_id_statuses.rb
new file mode 100644
index 0000000000..401fc5e62e
--- /dev/null
+++ b/db/migrate/20180106000232_add_index_on_statuses_for_api_v1_accounts_account_id_statuses.rb
@@ -0,0 +1,10 @@
+class AddIndexOnStatusesForApiV1AccountsAccountIdStatuses < ActiveRecord::Migration[5.1]
+  disable_ddl_transaction!
+
+  def change
+    safety_assured do
+      add_index :statuses, [:account_id, :id, :visibility, :updated_at], order: { id: :desc }, algorithm: :concurrently, name: :index_statuses_20180106
+    end
+    remove_index :statuses, name: :index_statuses_on_account_id_id
+  end
+end
diff --git a/db/schema.rb b/db/schema.rb
index 04d957c637..d1722fa299 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -10,7 +10,7 @@
 #
 # It's strongly recommended that you check this file into your version control system.
 
-ActiveRecord::Schema.define(version: 20171226094803) do
+ActiveRecord::Schema.define(version: 20180106000232) do
 
   # These are extensions that must be enabled in order to support this database
   enable_extension "plpgsql"
@@ -409,7 +409,7 @@ ActiveRecord::Schema.define(version: 20171226094803) do
     t.bigint "account_id", null: false
     t.bigint "application_id"
     t.bigint "in_reply_to_account_id"
-    t.index ["account_id", "id"], name: "index_statuses_on_account_id_id"
+    t.index ["account_id", "id", "visibility", "updated_at"], name: "index_statuses_20180106", order: { id: :desc }
     t.index ["conversation_id"], name: "index_statuses_on_conversation_id"
     t.index ["in_reply_to_id"], name: "index_statuses_on_in_reply_to_id"
     t.index ["reblog_of_id", "account_id"], name: "index_statuses_on_reblog_of_id_and_account_id"
-- 
GitLab