今回のチューニング
前回は、共有バッファサイズを調整することでPostgreSQLのパフォーマンスを向上させました。共有バッファはPostgreSQLエンジン とハードディスクとの間でデータをキャッシュして処理速度を稼ぐものでしたが、もう1つ似たような位置づけのバッファがあります。それはトランザクション ログバッファです。今回のチューニングは、この「トランザクションログバッファ」をターゲットにします。
共有バッファの問題
前回のチューニングで取り上げた共有バッファが、いわゆるディスクキャッシュとして働いていることは説明しました(図1)。

図1:共有バッファの概念図
このディスクキャッシュは読み込み時だけでなく書き込み時にもキャッシュとして機能しているため、PostgreSQLエンジンによって更新された データは、すぐにはハードディスクに書き込まれません。読み込みだけでなく書き込みでさえも、できるだけハードディスクへのアクセスを減らし、パフォーマ ンスを上げるように工夫しているわけです。
ここで1つ疑問がわきませんか?
データを更新しても即座にハードディスクへ書き込まないのであれば、その瞬間に何らかの障害が発生してPostgreSQLサーバが停止してしまう と、大切なデータが失われるのではないか…。実はそのとおり、失われてしまいます。このままではRDBMSとして十分な信頼性を備えているとはいえませ ん。