首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >database.yml中的池选项有何用途

database.yml中的池选项有何用途
EN

Stack Overflow用户
提问于 2012-09-28 15:02:33
回答 3查看 19K关注 0票数 41

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

代码语言:javascript
复制
adapter
encoding
database
pool
username
password
socket
host
port
timeout

我知道上面大多数的用法,但是池。因此,我想知道database.yml中的池选项的用途,或者我们需要为流量非常大的应用程序设置的任何其他参数。

EN

回答 3

Stack Overflow用户

发布于 2012-09-28 23:48:25

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

  • 50 ruby processes
  • 每个进程具有100个线程
  • mysql,设置为1000个并发连接

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

票数 33
EN

Stack Overflow用户

发布于 2015-01-07 05:39:02

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

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

票数 4
EN

Stack Overflow用户

发布于 2012-09-28 15:06:52

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12635152

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档