这里看到的数据库“连接限制”是什么:
https://addons.heroku.com/marketplace/heroku-postgresql
如果我有一个查询数据库的ruby应用程序,同时发出了100个请求,那么数据库连接限制将如何发挥作用?
80个请求被拒绝了吗?排队?
每个查询是单独的连接还是由单个连接处理的多个查询?
我正在使用ActiveRecord。提前谢谢!
答案 0 :(得分:2)
Active Record通过线程使用连接池机制来管理数据库连接。创建数据库连接池,然后在需要访问数据库的应用程序之间共享。当应用程序需要数据库访问时,它会从池请求连接。完成后,它会返回到池的连接,以供其他应用程序或请求使用。 活动记录通过连接池类实现,并且它是线程安全的。根据您的示例,如果已连接的连接数和池已满,则它们将排队并将设置超时。请求完成后,将处理其他请求。默认情况下,连接池设置为5,超时为5秒。
答案 1 :(得分:1)
此处的连接限制表示可以对数据库打开的最大后端连接数。
在您的示例中,计数取决于应用程序的并发性。如果您的应用程序是单线程的并且您使用的是1 dyno,那么这些请求将按顺序处理,您可能只使用1个数据库连接。
如果你使用像Unicorn那样的4个工作人员,这大约是4个数据库连接。
此DevCenter扩展了连接: