Database.ymlで最も広く使用されているオプションは次のとおりです。
adapter
encoding
database
pool
username
password
socket
Host
port
timeout
上記以外はほとんどプールの使用を知っています。それで、database.ymlのプールオプションの使用方法を知りたいか、またはトラフィックが非常に多いアプリケーション用に設定する必要がある他のパラメーターがあります。
Rubyプロセスごとに可能な接続の量を設定します。そのため、Railsアプリをスレッド化している場合、またはトランザクションを過度に使用している場合。ここでの制限は、これを考慮してください:
したがって、すべてのプロセスが同時に最大20の接続(50 * 20 == 1000)を開くことができるのは理にかなっています。したがって、pool
値を20以下に設定します。
この質問への回答を探している他の誰にとっても、基本的な考え方は、データベースは非常に多くの同時接続しかサポートできないため、開いている接続を制限する方法が必要であるようです。 pool
属性は、同時に開くことができる接続の最大数を指定します。
詳細については、 http://guides.rubyonrails.org/configuring.html#database-pooling を参照してください。ガイドは、プールがアプリの合計接続数であることを明示的に述べていませんが、それは私がそれを読んだ後に得られる感覚です。
pool
は接続プールのサイズの設定で、デフォルトでは5です。
http://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/ConnectionPool.html