Durability is a database feature that guarantees the recording of committed transactions even if the server crashes or loses power. However, durability adds significant database overhead, so if your site does not require such a guarantee, <productname>PostgreSQL</productname> can be configured to run much faster. The following are configuration changes you can make to improve performance in such cases. Except as noted below, durability is still guaranteed in case of a crash of the database software; only an abrupt operating system crash creates a risk of data loss or corruption when these settings are used. 永続性とは、サーバがクラッシュしたり電源が落ちたりしたとしても、コミットされたトランザクションが記録されていることを保証するデータベースの機能です。 しかし、永続性はデータベースに多くのオーバーヘッドを与えます。 このためこの保証を必要としないサイトでは、PostgreSQLをかなり高速に実行するように設定することができます。 以下に、こうした状況で性能を向上させるために行うことができる設定変更を示します。 後述の注意を除き、データベースソフトウェアがクラッシュした場合でも、永続性は保証されています。 突然のオペレーティングシステムのクラッシュだけが、この設定を使用した時のデータ損失、破損の危険性を引き起こします。
Place the database cluster's data directory in a memory-backed file system (i.e., <acronym>RAM</acronym> disk). This eliminates all database disk I/O, but limits data storage to the amount of available memory (and perhaps swap). データベースクラスタのデータディレクトリをメモリ上のファイルシステム(つまりRAMディスク)に設定します。 これはすべてのデータベースによるディスクI/Oを取り除きますが、データ量が利用可能なメモリ(およびスワップも使われるかもしれません)量までに制限されます。
Turn off <xref linkend="guc-fsync"/>; there is no need to flush data to disk. fsyncを無効にします。 データをディスクにフラッシュする必要がありません。
Turn off <xref linkend="guc-synchronous-commit"/>; there might be no need to force <acronym>WAL</acronym> writes to disk on every commit. This setting does risk transaction loss (though not data corruption) in case of a crash of the <emphasis>database</emphasis>. synchronous_commitを無効にします。 コミット毎にディスクにWAL書き出しを強制する必要がありません。 この設定は、データベースがクラッシュした場合、トランザクション損失(データ破損ではありません)の危険性があります。
Turn off <xref linkend="guc-full-page-writes"/>; there is no need to guard against partial page writes. full_page_writesを無効にします。 部分的なページ書き出しから保護する必要がありません。
Increase <xref linkend="guc-max-wal-size"/> and <xref
linkend="guc-checkpoint-timeout"/>; this reduces the frequency
of checkpoints, but increases the storage requirements of
<filename>/pg_wal</filename>.
max_wal_sizeおよびcheckpoint_timeoutを増加させます。
これによりチェックポイントの頻度が減少しますが、/pg_wal
で必要とする容量が増加します。
Create <link linkend="sql-createtable-unlogged">unlogged tables</link> to avoid <acronym>WAL</acronym> writes, though it makes the tables non-crash-safe. WAL書き出しを回避するためには、テーブルがクラッシュに対して安全ではなくなりますが、ログを取らないテーブルを作成してください。