Mysql 实体框架轮询
我有一个网站,它使用轮询不断地从使用.NET和实体框架设置的API获取信息。我的数据库托管在AWS Aurora MySQL中。今天,当我使用MySql工作台访问我的生产数据库时,它说连接太多了 据我所知: 1.实体框架管理连接的打开和关闭 2.AWS自动根据用户请求进行扩展 为什么我会遇到这个问题 这是AWS问题还是.NET应用程序问题 这里有两点: 第1点: 实体框架确实管理连接,但这仍然取决于您如何使用它 一般来说,EF中的DB上下文是一个IDisposable对象。这意味着,如果您将其放在“使用”块中,它将关闭连接并为您处置对象。大概是这样的:Mysql 实体框架轮询,mysql,.net,entity-framework,amazon-web-services,amazon-aurora,Mysql,.net,Entity Framework,Amazon Web Services,Amazon Aurora,我有一个网站,它使用轮询不断地从使用.NET和实体框架设置的API获取信息。我的数据库托管在AWS Aurora MySQL中。今天,当我使用MySql工作台访问我的生产数据库时,它说连接太多了 据我所知: 1.实体框架管理连接的打开和关闭 2.AWS自动根据用户请求进行扩展 为什么我会遇到这个问题 这是AWS问题还是.NET应用程序问题 这里有两点: 第1点: 实体框架确实管理连接,但这仍然取决于您如何使用它 一般来说,EF中的DB上下文是一个IDisposable对象。这意味着,如果您将其放
using (var db = new DBContext())
{
[...]
}
否则,如果它不在using块内,则应始终记住处置它。我还将明确关闭保险连接
第2点:
AWS RDS不会自动缩放。您可以在创建时选择DB实例大小,然后可以手动更改实例类型。您甚至可以在运行时进行某种自动垂直缩放,但垂直缩放有其自身的局限性:
您的代码是否鲁莽地创建连接,例如为每个查询打开一个新连接?您可能需要重新启动数据库实例才能访问它,在重新启动数据库实例时,请密切关注
SHOW PROCESSLIST
,以查看在您开始运行应用程序时,它是否开始被休眠连接阻塞。非常感谢,我将对此进行调查