database.yml中使用最广泛的选项如下:
adapter
encoding
database
pool
username
password
socket
host
port
timeout
我知道使用上面的大部分但是池。 所以我想知道database.yml中pool选项的用途是什么,或者我们需要为流量非常大的应用程序设置任何其他参数。
答案 0 :(得分:26)
它设置每个ruby进程可能的连接数量。因此,如果您正在线程化您的rails应用程序,或者您过度使用交易。此处的限制取决于您的设置。考虑一下:
所以有意义的是,每个进程在给定时间最多可以打开20个连接(50 * 20 == 1000)。因此,您可以将pool
值设置为20或更小。
答案 1 :(得分:4)
对于正在寻找这个问题答案的其他人来说,基本的想法似乎是数据库只能支持这么多的同时连接,因此需要一种限制开放连接的方法。 pool
属性指定在给定时间可以打开的最大连接数。
有关详细信息,请参阅http://guides.rubyonrails.org/configuring.html#database-pooling。该指南没有明确说明池是应用程序的总连接数,但这是我读完后的感觉。
答案 2 :(得分:1)