.NET CORE MySql MaxPoolSize未应用于

问题描述 投票:1回答:1

我们在RDS中托管了一个MySQl数据库。创建MySQL连接时,似乎不应用最大池大小。我们有一个看起来像这样的连接字符串

Server=myServer;Port=3306;Database=MyDatabase;User Id=MyUser;Password=MyPassword;ConnectionReset=True;pooling=true;minpoolsize=1;maxpoolsize=4;ConnectionLifeTime=30"

我们在这里添加了最大池大小,但是我们的应用程序仍然保持着太多的连接。我已经使用该命令在MySqlWorkbench中验证了这一点

select * FROM INFORMATION_SCHEMA.PROCESSLIST

我们正常地创建一个sql连接..我做错了什么?

var connection = new MySql.Data.MySqlClient.MySqlConnection(_connectionString);
connection.Open()

current_connections

技术信息:MySql Server版本:5.7.16

MySqlConnector :( Nuget Package) - > MySql.Data Version =“7.0.6-ir31”

更新:

在单元测试中执行此操作并并行打开MySQL连接时,一切似乎都很顺利。但是,当通过ASP.NET Core进入Web请求时,似乎存在问题。

c# mysql connection-pooling mysql-connector rds
1个回答
0
投票

我遇到过类似的情况。当使用运行.net核心的loadbalanced ec2实例时,最小和最大池大小似乎不起作用。在我的情况下它是击中极光mysql。

问题似乎与在不同的ec2实例上具有不同的最小和最大设置的不同连接字符串相关联。它似乎混淆了池最小值和最大值。

解决(或修复)的方法是确保所有ec2实例上的最小和最大池设置相同。正在击中数据库集群。

© www.soinside.com 2019 - 2024. All rights reserved.