グループコミット
同時に発生した複数のコミットをまとめ、1回のfsyncで永続化する最適化。fsyncはSSDでも5〜10 msかかり、100トランザクションを1件ずつ処理すれば500 ms、まとめれば5 msで済む。
PostgreSQLではcommit_delayとcommit_siblingsで制御する(デフォルトは無効。最近のSSDは十分に速いため)。MySQLのInnoDBではバイナリログのグループコミットがスループットの要である。トレードオフは、個々のコミットがバッチを待つぶんだけ遅延が増える代わりに、全体のスループットが大きく上がる点にある。同期レプリケーションと組み合わせれば、複数のトランザクションを1つのバッチとしてレプリカへ送れる。金融やキューをDBで代用するような書き込み中心のOLTPでは、昔からの定番チューニングだ。