django 模型层(数据库)连接的处理逻辑

前端之家收集整理的这篇文章主要介绍了django 模型层(数据库)连接的处理逻辑前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

django 模型层(数据库)连接的处理逻辑:

  • 使用CONN_MAX_AGE配置限制DB连接寿命

  • CONN_MAX_AGE的默认值是0

  • 每个DB连接的寿命保持到该次请求结束

默认数据库连接的处理弊端

  • 每个请求豆浆重复连接数据库

  • 处理高并发请求给服务带来非常大压力

  • 无法承载高并发服务

如何避免django过度优化

  • 存储数据库连接位置:线程局部变量(当django部署时,每一个处理的线程都拥有一个数据库的连接,因为这个连接是保存到线程局部局部变量中,不受其他线程的影响)

  • MysqL数据库支持的最大连接数,(如果部署线程数超过数据库最大连接数,会导致其他服务连接MysqL错误,导致无法连接数据库

如何查看MysqL最大连接数:

使用navicat,找到对应的数据库,右键,找到命令列界面,输入命令:

MysqL> 	show variables like '%max_connections%';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| max_connections | 151   |
+-----------------+-------+
1 row in set

MysqL>

可以知道MysqL数据库最大    连接数是151。

修改MysqL最大连接数:

MysqL>  set global max_connections =1000;

Query OK, 0 rows affected

MysqL> 	show variables like '%max_connections%';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| max_connections | 1000  |
+-----------------+-------+
1 row in set

MysqL>


猜你在找的Django相关文章