Postgres をインメモリで持続性なしで実行するスクリプトを作成したいと考えています。このページを読みました: http://www.postgresql.org/docs/9.1/static/non-durability.html しかし、スクリプトでこのパラメーターを設定する方法がわかりませんでした。手伝っていただけませんか?
手伝ってくれてありがとう!
Postgres をインメモリで持続性なしで実行するスクリプトを作成したいと考えています。このページを読みました: http://www.postgresql.org/docs/9.1/static/non-durability.html しかし、スクリプトでこのパラメーターを設定する方法がわかりませんでした。手伝っていただけませんか?
手伝ってくれてありがとう!
などのこれらのパラメータのほとんどは、 でfsync
のみ設定できますpostgresql.conf
。PostgreSQL を再起動すると、変更が適用されます。これらは、データベース クラスタ全体 (その PostgreSQL インストール内のすべてのデータベース) に適用されます。これは、すべてのデータベースが単一の postmaster、先行書き込みログ、および一連の共有システム テーブルを共有しているためです。
スクリプトの SQL レベルで設定できる唯一のパラメーターは、synchronous_commit
. 設定synchronous_commit = 'off'
することで、「次の数秒でデータベースがクラッシュした場合、このトランザクションが失われても問題ありませんが、アトミックに適用されることを確認してください」と言うことができます。
このトピックについては、以前の回答Optimize PostgreSQL for fast testingで詳しく書きました。
スクリプトで他のパラメータを設定したい場合は設定できますが、スクリプトを開いて変更postgresql.conf
し、PostgreSQL を再起動する必要があります。のようなテキスト処理ツールはsed
、この種の作業を容易にします。
Debian ベースの Linux ディストリビューションを実行している場合は、次のようにするだけです。
pg_createcluster -d /dev/shm/mypgcluster 8.4 ramcluster
RAM ベースのクラスターを作成します。あなたがしなければならないことに注意してください:
pg_drop cluster 8.4 ramcluster
再起動などで再作成します。