django - 数据库连接限制是什么意思?

标签 django database postgresql

我将 Django 与来自 heroku 的 Postgres 数据库一起使用。 heroku 数据库有一个

“连接限制为 20”

我不明白这是什么意思。

连接是如何定义的?每次用户访问我的网站时,我都会得到一些数据库内容。这是否已经连接,因为我的网站需要连接到数据库才能获取此数据?

如果达到连接总数会怎样?网站还能用吗?

最佳答案

您执行的每个查询都会与数据库建立连接。

例如,如果您想从数据库中获取一些数据,通常会发生以下情况:

1 - 您在 django 级别执行查询。

2 - Django 会将您的查询转换为 SQL。

3 - Django 创建到您的数据库的连接。

4 - 您的查询将在数据库中执行。

5 - Django 将收到结果。

6 - Django 将关闭连接。

该限制意味着您只能让 20 个任务同时处理第 3 步到第 6 步。

如果你超过这个限制,你的应用程序将抛出一个错误或者你的应用程序会尝试直到它可以建立连接(尝试次数会有限制,如果你也超过尝试次数你会得到一个错误)这导致您的应用程序会变慢或中断某些请求。

您要么必须升级您的服务器/获得更多服务器,要么必须优化您的代码以减少查询(例如组合查询)。

关于django - 数据库连接限制是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53340297/

相关文章:

python - Nginx + gunicorn Django 1.9 CSRF 验证失败

python - 根据值在 Admin 中自定义 Django 表单字段

postgresql - 在更新时锁定一个表,在子查询中锁定另一个表,哪个会先被锁定?

node.js - 如何使用应用程序用户连接到数据库?

database - 如何在 Flask 应用程序中使用 pytest 清除/拆卸数据库

postgresql - 如何减少具有有序结果的 postgresql IN 查询的索引扫描时间?

django - 解析 createdAt 等于昨天的 REST api 查询约束

python - "Expected a list of items but got type\"字典\"."

database - Heroku pg :push command missing

sql - table==1 是意外的此时批处理文件