PostgreSQL 9.1.5文書 | ||||
---|---|---|---|---|
前のページ | 巻戻し | 第 14章性能に関するヒント | 早送り | 次のページ |
永続性とは、サーバがクラッシュしたり電源が落ちたりしたとしても、コミットされたトランザクションが記録されていることを保証するデータベースの機能です。 しかし、永続性はデータベースに多くのオーバーヘッドを与えます。 このためこの保証を必要としないサイトでは、PostgreSQLをかなり高速に実行するように設定することができます。 以下に、こうした状況で性能を向上させるために行うことができる設定変更を示します。 後述の注意を除き、データベースソフトウェアがクラッシュした場合でも、永続性は保証されています。 突然のオペレーティングシステムの停止だけが、この設定を使用した時のデータ損失、破損の危険性を引き起こします。
データベースクラスタのデータディレクトリをメモリ上のファイルシステム(つまりRAMディスク)に設定します。 これはすべてのデータベースによるディスクI/Oを取り除きますが、データ量が利用可能なメモリ(およびスワップも使われるかもしれません)量までに制限されます。
fsyncを無効にします。 データをディスクに吐き出す必要がありません。
full_page_writesを無効にします。 部分的なページ書き出しから保護する必要がありません。
checkpoint_segmentsおよびcheckpoint_timeoutを増加させます。 これによりチェックポイントの頻度が減少しますが、/pg_xlogで必要とする容量が増加します。
synchronous_commitを無効にします。 コミット毎にディスクにWALを書き出す必要がありません。 この設定は、データベース単体のクラッシュした場合、トランザクション損失(データ破損ではありません)の危険性があります。