DevOpsMar 28, 2026
Deep EVM #27:PostgreSQLパフォーマンス — インデックス、VACUUM、クエリ最適化
OS
Open Soft Team
Engineering Team
パフォーマンスツールキット
PostgreSQLは箱から出してすぐ高速ですが、スケール時 — 数千万行、秒間数千クエリ — では内部の理解が必要です。3つの柱:インデックス、VACUUM、クエリ最適化。
インデックスタイプ
B-Tree(デフォルト)、部分インデックス(条件に一致する行のみ)、カバリングインデックス(INCLUDE)、BRINインデックス(時系列データに最適、3400万行で~100KB)、GINインデックス(JSONB、全文検索)。
VACUUM:サイレントパフォーマンスキラー
autovacuumのデフォルト設定は保守的すぎます。高書き込みテーブルではaggressiveにチューニング。
EXPLAIN ANALYZE
最も重要なデバッグツール。実行時間、行数、バッファヒットを確認。一般的なアンチパターン:大テーブルのシーケンシャルスキャン、インデックスなしのネステッドループ、不正確な行推定。
まとめ
推測ではなく測定。すべての遅いクエリには実行プランにストーリーがあります。