HOT
Die PostgreSQL-Optimierung, die einem Update erspart, in sämtlichen Indizes neue Einträge zu schreiben. Der Unterschied zwischen einer Tabelle, die starke Update-Last verträgt, und einer, die es nicht tut.
Normalerweise erzeugt jedes Update eine völlig neue Zeilenversion, und da jeder Index auf eine physische Position zeigt, braucht jeder Index einen neuen Eintrag — auch jene, die mit der geänderten Spalte gar nichts zu tun haben. Eine Tabelle mit acht Indizes zahlt also den achtfachen Preis für die Änderung eines einzigen Felds. Zwei Bedingungen ersparen Postgres das: Keine indexierte Spalte darf sich geändert haben, und die neue Version muss auf dieselbe Seite passen wie die alte. Sind beide erfüllt, wird die neue Version intern auf der Seite an die alte angekettet, und die Indizes bleiben unberührt. Die zweite Bedingung ist der Grund, warum ein Fillfactor unter hundert gerade bei update-lastigen Tabellen sinnvoll ist.