プロが教える店舗&オフィスのセキュリティ対策術

postgresのチェックポイントについて

postgreSQL(8.4.4)のドキュメントで、

「PostgreSQLでは、メモリ上に変更された行の情報を記憶しないため、同時にロックできる行数の上限はありません。 しかし、行をロックする際に、ディスクに書き込む作業が発生するかもしれません。 例えばSELECT FOR UPDATEは、選択された行をロックしたものと印を付けるために変更を行いますので、ディスクにその結果を書き込むことになります。」

の記述があるのですが、
これは、DMLを発行すると即時にチェックポイントが走り、
I/Oが発生するということなんでしょうか??

A 回答 (1件)

データを更新しても即座にチェックポイントは実行されませんが、WAL ファイル (いわゆるトランザクションログ、REDO ログと呼ばれるもの) への書き込みが発生します。



従って、WAL ファイルへの書き込みによってディスク I/O は発生しますが、そのコストはチェックポイントの実行に比べて非常に小さいものです。

この回答への補足

select .. for update でWALに書き込みが発生するということでしょうか??

補足日時:2010/08/20 20:31
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!