Add index hotspots
authorPete <pete@debu.gs>
Fri, 1 Jul 2022 12:59:26 +0000 (13:59 +0100)
committerFloatingGhost <hannah@coffee-and-dreams.uk>
Fri, 1 Jul 2022 12:59:26 +0000 (13:59 +0100)
priv/repo/migrations/20220506175506_add_index_hotspots.exs [new file with mode: 0644]

diff --git a/priv/repo/migrations/20220506175506_add_index_hotspots.exs b/priv/repo/migrations/20220506175506_add_index_hotspots.exs
new file mode 100644 (file)
index 0000000..e1f59bb
--- /dev/null
@@ -0,0 +1,17 @@
+# Pleroma: A lightweight social networking server
+# Copyright © 2017-2022 Pleroma Authors <https://pleroma.social/>
+# SPDX-License-Identifier: AGPL-3.0-only
+
+defmodule Pleroma.Repo.Migrations.AddIndexHotspots do
+  use Ecto.Migration
+
+  def change do
+    # Stop inserts into activities from doing a full-table scan of users:
+    create_if_not_exists(index(:users, [:ap_id, "COALESCE(follower_address, '')"]))
+
+    # Change two indexes and a filter recheck into one index scan:
+    create_if_not_exists(index(:following_relationships, [:follower_id, :state]))
+
+    create_if_not_exists(index(:notifications, [:user_id, :seen]))
+  end
+end