MySQL连接过多:Django sqlAlchemy

Ami*_*dri 5 mysql sqlalchemy django-rest-framework

我有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()
Run Code Online (Sandbox Code Playgroud)

随着API使用量的增加,Mysql正在创建新的连接,并且连接数threads_connected也在不断增长。达到最大值后,将引发Too many connections错误。在show processList许多过程中都会处于sleep模式。如果我们重新启动应用程序,则所有连接都将被重置。如下图所示no.of connections v/s time。如何解决此问题。

在此处输入图片说明

Soh*_*saz 0

使用完连接后,您必须关闭连接,因为如果不这样做,连接将保持打开状态,直到网络服务器将其关闭,这可能需要很长时间。最佳实践是使用连接池。因为打开和关闭连接太重并且会降低性能。即使您使用连接池,也必须在使用后释放连接。