HOT
更新時に全インデックスへ新しいエントリを書かずに済ませるPostgreSQLの最適化。更新が多い負荷に耐えるテーブルと、耐えないテーブルを分ける要因である。
通常、更新のたびに行バージョンが丸ごと新しく作られ、インデックスはどれも物理位置を指しているため、変更した列と無関係なインデックスも含めて全部に新しいエントリが要る。インデックスが8本あるテーブルでは、1つのフィールドを変えるだけで8倍のコストがかかる。Postgresがこれを省ける条件は二つ。インデックス対象の列が変わっていないこと、そして新バージョンが旧バージョンと同じページに収まることだ。両方満たせば、新バージョンはページ内部で旧バージョンから連鎖され、インデックスには触れない。二つ目の条件があるため、更新の多いテーブルでは100未満のfillfactorが意味を持つ。