2

我正在编写可以在我办公室内部使用的 django 简单应用程序。我说可能有 1000 人。我没有任何会话处理,用户处理。它只是 django 中的一个存储/查看过程。

我明白了什么?

1) django closes 在每个请求上重新打开数据库连接。2)mysql有一个最大连接数的阈值。

我的问题?

1) 最大连接数 -> 假设有 10 个用户通过他们的桌面浏览器访问我的 URL。这是否意味着 Django 创建了 10 个独立的连接来处理请求?

2)无论我使用持久性/非持久性,作为程序员,我需要注意编码部分吗?即:我们需要像 Django 中那样的检查吗?

if <Connection is valid>  
then 
    Initiate transaction

请澄清我的问题?如果问题非常基本,请原谅我。

4

1 回答 1

6

根据与数据库相关的 Django 文档,Django 在第一次进行数据库查询时会打开与数据库的连接。它保持此连接打开并在后续请求中重用它。一旦超过 CONN_MAX_AGE 定义的最大年龄或不再可用时,Django 将关闭连接。

CONN_MAX_AGE 的默认值为 0,保留每次请求结束时关闭数据库连接的历史行为。对于持久连接,您需要将 CONN_MAX_AGE 设置为任意正数秒数。对于无限的持久连接,将其设置为无。

所以回答你的第一个问题取决于 CONN_MAX_AGE 标志值的设置。如果将其设置为 0,那么对于 10 个用户中的每个用户来说是,它将使用 10 个不同的连接。

在回答第二个问题时,我认为我们不需要检查有效连接,因为我相信 Django 数据库层会执行所有操作。

您可以查看以下 URL,那里描述了所有内容。

Django 数据库

Django 持久数据库连接

希望这会帮助你。

于 2013-10-11T12:14:02.610 回答