我正在阅读有关MySQL:Using Connector/Net with Connection Pooling的信息。建议不要使用全局MySqlConnection
对象并手动打开/关闭它。此外,建议使用MySqlHelper
而不是使用MySqlCommand
对象。
因此,假设我有一个CONNECTION_STRING
设置,我可以执行以下操作:
MySqlHelper.ExecuteNonQuery(CONNECTION_STRING,
@"INSERT INTO `table1` (`col3`,`col4`) VALUES (@col3, @col4 );",
(new List<MySqlParameter>() {
new MySqlParameter("@col3", @"another value"),
new MySqlParameter("@col4", @"some value")
}).ToArray()
);
现在,假设我在异步并行任务中(通过 TPL)进行了几千次上述调用。
我的 MySQL 服务器上有一些允许的最大连接数,我开始收到异常,声称用户已超过最大连接数。我认为连接池应该为我自动处理这个?司机不是应该自动为我汇集和排队吗?
我目前允许最多 1500 个连接,我在连接字符串中添加了这个:
Pooling=True;minimumPoolSize=0;maximumpoolsize=100;
但是,我仍然超出了最大连接数。我需要一些关于如何处理许多异步插入而不超出这个最大连接限制的建议。