メインコンテンツへスキップ
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

最も重要なデバッグツール。実行時間、行数、バッファヒットを確認。一般的なアンチパターン:大テーブルのシーケンシャルスキャン、インデックスなしのネステッドループ、不正確な行推定。

まとめ

推測ではなく測定。すべての遅いクエリには実行プランにストーリーがあります。