database.yml中pool选项的用途是什么

Sal*_*lil 37 mysql connection-pooling ruby-on-rails ruby-on-rails-3

database.yml中使用最广泛的选项如下:

adapter
encoding
database
pool
username
password
socket
host
port
timeout
Run Code Online (Sandbox Code Playgroud)

我知道使用上面的大部分但是池.所以我想知道database.yml中pool选项的用途是什么,或者我们需要为具有非常繁忙流量的应用程序设置任何其他参数.

mor*_*itz 27

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

  • 50个红宝石过程
  • 每个都有100个线程
  • 一个设置为1000个并发连接的mysql

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