.NET中的连接池

问题描述:

我正在尝试在.net中为自己创建一个数据库对象。构造函数接收连接字符串并使用MySQL连接器打开到MySQL数据库的连接。它具有以下功能:.NET中的连接池

function executeNonQuery(cmd as String) as Boolean 
function getOneResultQuery(query as String) as String 
function getDataReader(query as String) as MySQLDataReader 

当任务需要db时,它会实例化数据库对象并调用其必要的命令。当数据库完成后,它会调用disconnect()函数。

这是否利用MySQL连接池?由于每个任务都与数据库连接和断开连接(有时一次打开多个连接,有时会打开一个连接,有时没有连接打开),连接是否会存储在池中?我必须让一个连接永久打开才能启用连接池吗?

这个数据库对象是一个体面的做法还是我过度这样做?

我不是MySql的专家,但我知道Connection Pooling在SQL Server中的工作方式,所以我使用Google来查看我的怀疑是否正确。

根据this post,从.Net到MySql的连接池是类似的,如果你使用相同的连接字符串(我相信这意味着完全相同的区分大小写等)连接池将由框架自动实现。

如果是这种情况,那么你就会过度思考它,并且保持一个开放的连接是没有必要的。 (在大多数情况下,这只是一个不好的习惯,要求麻烦)。

基于对.Net运行时如何为您提取细节的一般理解,我对此答案感到足够自信,并将其作为答案而不是评论发布。

+0

有趣。但对于大多数请求,连接时间比执行查询的时间要长。 – cyrianox 2013-11-25 11:56:09