“私の Postgres query はなぜ遅いですか?Connection string は ~/.pg-creds にあります。”
MoClaw がすること
- 1 ~/.pg-creds を読みます(credentials を含むため、先に確認を求めます)。
- 2 psql で接続し、指定された query に EXPLAIN ANALYZE を実行します。
- 3 4M rows に対する sequential scan を見つけます。(user_id, created_at) の index があれば改善できる箇所です。
- 4 CREATE INDEX statement と rollback statement を生成し、すぐ貼り付けられる状態にします。
返信: 「原因が分かりました。(user_id, created_at) に index がないため、planner が sequential scan を実行しています。composite index を追加すると cost は 84,000 から 12 に下がります。必要な CREATE INDEX statement と rollback を用意しました。」あなたが適用すると、次の query は 14ms で実行されます。