mysql - Mysql连接太多:Django sqlAlchemy
问题描述
我有Django RestFrameWork
我们正在使用sqlalchemy
库进行MySql
连接的应用程序。
engine = create_engine('mysql+mysqldb://username:password@hostaddress/'
'DBname', pool_recycle=1800,
connect_args={'connect_timeout': 1800}, pool_size=10, max_overflow=10, pool_pre_ping=True)
connection = engine.connect()
随着 API 使用量的增加,Mysql 正在创建新的连接并且数量threads_connected
不断增长。达到最大值后抛出Too many connections
错误。在show processList
许多过程中都会处于sleep
模式中。如果我们重新启动应用程序,所有连接都将被重置。下图表示no.of connections v/s time
。如何解决这个问题。
解决方案
您必须在使用完连接后关闭它们,因为如果您不这样做,连接会保持打开状态,直到网络服务器关闭它,这可能需要很长时间。最佳做法是使用连接池。因为打开和关闭连接太重并且会降低性能。即使您使用的是连接池,您也必须在使用后释放连接。
推荐阅读
- xamarin.forms - Visual Studio App Center 无法运行 VS 预构建事件 - 如何在本地和 App Center 中获取此构建?
- c - ESP32 的核心 1 和核心 0 不能单独工作
- java - Log4j:如何编写配置?
- javascript - 用jquery计算子元素和文本
- azure - 在 Visual Studio 2019 中,即使应用服务仍在运行,如何强制部署 Azure 应用服务
- sql - 具有单独 ID 的 SQL 连接表
- elasticsearch - 使用来自不同索引的数据进行弹性搜索计算
- reactjs - 实现没有唯一 ID 的 Reactjs CRUD 应用程序
- jquery - 编写 SQLite 搜索查询的最佳方式?
- python-3.x - 如何访问python列表元素中的特定字符