2010-03-04 65 views
1

我正在嘗試在.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連接池?由於每個任務都與數據庫連接和斷開連接(有時一次打開多個連接,有時會打開一個連接,有時沒有連接打開),連接是否會存儲在池中?我必須讓一個連接永久打開才能啓用連接池嗎?

這個數據庫對象是一個體面的做法還是我過度這樣做?

回答

0

我不是MySql的專家,但我知道Connection Pooling在SQL Server中的工作方式,所以我使用Google來查看我的懷疑是否正確。

根據this post,從.Net到MySql的連接池是類似的,如果你使用相同的連接字符串(我相信這意味着完全相同的區分大小寫等)連接池將由框架自動實現。

如果是這種情況,那麼你就會過度思考它,並且保持一個開放的連接是沒有必要的。 (在大多數情況下,這只是一個不好的習慣,要求麻煩)。

基於對.Net運行時如何爲您提取細節的一般理解,我對此答案感到足夠自信,並將其作爲答案而不是評論發佈。

+0

有趣。但對於大多數請求,連接時間比執行查詢的時間要長。 – cyrianox 2013-11-25 11:56:09