Add index hotspots
[akkoma] / priv / repo / migrations / 20220506175506_add_index_hotspots.exs
1 # Pleroma: A lightweight social networking server
2 # Copyright © 2017-2022 Pleroma Authors <https://pleroma.social/>
3 # SPDX-License-Identifier: AGPL-3.0-only
4
5 defmodule Pleroma.Repo.Migrations.AddIndexHotspots do
6 use Ecto.Migration
7
8 def change do
9 # Stop inserts into activities from doing a full-table scan of users:
10 create_if_not_exists(index(:users, [:ap_id, "COALESCE(follower_address, '')"]))
11
12 # Change two indexes and a filter recheck into one index scan:
13 create_if_not_exists(index(:following_relationships, [:follower_id, :state]))
14
15 create_if_not_exists(index(:notifications, [:user_id, :seen]))
16 end
17 end