📖

インデックスの整理したいよね

2025/02/09に公開

Daily Blogging50日目

ついに来ました50日目
長いようで短い道のりでした

最近DBのパフォーマンス系の本とか読んでて、とりあえずインデックスの整理したいなぁと。
不要なインデックスを削除して、改めて効果的なインデックスを貼り直したりとかしたい。
でも不要なインデックスってぱっと見じゃ全くわからん

pgheroで解決

なんとか視覚的にわかるようになってると嬉しい
尚且つ無料で簡単に使えると良い

Railsアプリケーションでそれを叶えてくれる便利なものはないのか...

そんな時はpgheroの出番
サンプルはこちら
https://pghero.dokkuapp.com/

これを使うと、全く使われていないインデックス重複したインデックスを教えてくれる。
Query Statsを有効化すると、スロークエリもわかったりするらしいが、そこは別のツールで解決できるので今回は設定しない。

使い方

  1. まずは必要なgemのインストール
gem "pghero"
gem "pg_query", ">= 2"
  1. ルーティングを追加
mount PgHero::Engine, at: "pghero"

pgheroもRailsエンジンなのでルーティングをマウントする

これで「/pghero」にアクセスすると統計画面に遷移できるようになる

認証

上記の設定だけでブラウザから情報を確認できるようになるが、誰でも見れるようになっちゃうのでパス制御だけじゃなくて認証も設定しよう。

環境変数に二つ設定するだけでOk
PGHERO_USERNAME
PGHERO_PASSWORD

これを設定すると、「/pghero」にアクセスした時に、認証情報を求められるようになる

Discussion