【发布时间】:2019-04-19 18:52:03
【问题描述】:
我将 Django 与 Heroku 的 Postgres 数据库一起使用。 heroku 数据库有一个
“连接限制为 20”。
我不明白这是什么意思。
如何定义连接?每次用户访问我的网站时,我都会得到一些数据库的东西。这是否已经是一个连接,因为我的网站需要连接到数据库才能获取这些数据?
如果达到连接总数会怎样?网站还能用吗?
【问题讨论】:
标签: django database postgresql
我将 Django 与 Heroku 的 Postgres 数据库一起使用。 heroku 数据库有一个
“连接限制为 20”。
我不明白这是什么意思。
如何定义连接?每次用户访问我的网站时,我都会得到一些数据库的东西。这是否已经是一个连接,因为我的网站需要连接到数据库才能获取这些数据?
如果达到连接总数会怎样?网站还能用吗?
【问题讨论】:
标签: django database postgresql
您执行的每个查询都会连接到数据库。
例如,如果您想从数据库中获取一些数据,通常会发生以下情况:
1 - 您在 django 级别执行查询。
2 - Django 会将您的查询转换为 SQL。
3 - Django 创建到您的数据库的连接。
4 - 您的查询将在数据库中执行。
5 - Django 将收到结果。
6 - Django 将关闭连接。
该限制意味着您只能同时处理 20 个任务执行第 3 步到第 6 步。
如果您超过此限制,您的应用程序将抛出错误或您的应用程序尝试直到它可以建立连接(尝试次数将受到限制,如果您也超过尝试次数,您将收到错误)导致您的应用程序会因某些请求而变慢或中断。
您要么必须升级服务器/获得更多服务器,要么必须优化代码以减少查询(例如组合查询)。
【讨论】: