41

Most widely used options in database.yml are of following :

adapter
encoding
database
pool
username
password
socket
host
port
timeout

I know the use of the most of the above but pool. So i want to know what is the use of the pool option in database.yml or there is any other parameter which we need to set for the application having very heavy traffic.

4

3 回答 3

33

它设置每个 ruby​​ 进程可能的连接数量。因此,如果您正在线程化您的 Rails 应用程序,或者您过度使用事务。此处的限制取决于您的设置。考虑一下:

  • 50 个红宝石工艺
  • 每个有 100 个线程
  • 一个设置为 1000 个同时连接的 mysql

因此,每个进程在给定时间最多可以打开 20 个连接(50 * 20 == 1000)是有道理的。因此,您可以将该pool值设置为 20 或更少。

于 2012-09-28T15:48:24.613 回答
4

对于其他正在寻找这个问题的答案的人来说,基本的想法似乎是一个数据库只能支持这么多的同时连接,所以需要一种方法来限制打开的连接。该pool属性指定在给定时间可以打开的最大连接数。

有关这方面的更多信息,请参阅http://guides.rubyonrails.org/configuring.html#database-pooling。该指南没有明确说池是应用程序的总连接数,但这是我阅读后的感觉。

于 2015-01-06T21:39:02.240 回答
1

pool是连接池大小的配置,默认为5。

http://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/ConnectionPool.html

于 2012-09-28T07:06:52.107 回答