2011-06-16 19 views
3

我目前正在使用winforms和.NET 4.0開發一個桌面應用程序,我已經下載了.NET 4.0的最新MySQL連接器,但是我對使用它的最佳方式有些懷疑。讓MySQL連接閒置以便重用或按需連接,那麼類怎麼樣?

注:只是想指出這個應用程序是供個人使用,並將在我自己的服務器上運行。

  • 我的應用程序連接到服務器,但在所有的時候,沒有收到信息,我應該按需連接到MySQL處理接收到的數據,或者我應該離開到MySQL的連接打開,只要應用程序打開空閒狀態,以便在收到數據時可以重用它。

  • 我一直在尋找一些關於在c#中使用MySQL的最新文檔,但我可以找到的是從2006年開始的教程是有一些很好的例子,我可以使用它作爲參考是我第一次在c#中使用MySQL),特別是顯示如何使用DataTable來序列化/反序列化數據的文檔將非常受歡迎?

    我會很高興與你們經常用來建立連接或從中拉取數據的類的代碼示例。

  • 我正在考慮的另一個問題與此不太相關的是:什麼時候應該考慮通過直接MySQL連接與我的應用程序使用Web API?

+1

幾乎在所有情況下,連接應根據需要打開和關閉。不要讓它們長時間打開 – 2011-06-16 07:14:59

+0

@Mitch小麥,但不會一遍又一遍地對性能產生更大的影響?如果我現在每過30秒鐘就有一件事要處理,那麼下一個小時它會做連接和斷開連接,這樣每個人都不會更方便地打開它? – Guapo 2011-06-16 07:41:19

+0

看到我以前的建議。連接回到池中,並被重用。 – 2011-06-16 08:55:31

回答

4

在我看來,您應該在用戶操作開始時打開連接並在最後關閉它。這不會顯着影響性能,因爲連接與執行單個查詢一樣快。

但是,如果您打開/關閉每個子操作的連接,則最終可能導致性能下降。確保你不這樣做。


,每次使用一個新的連接的主要動機,是你能避免錯誤以下類別:

  • 該數據庫已經一段時間後消失或斷開「晨報」的錯誤(或狀態防火牆超時等)
  • 「陳舊狀態」錯誤,其中一些先前的操作已使連接處於「斷開」狀態,並導致下一個操作失敗或意外行爲(例如「SET names koi8」)

可以通過執行mysql_change_user(如果您的API支持它)重置mysql連接,但這幾乎與重新連接(它只是使用相同的tcp連接)相同。

+0

+1感謝您的回覆,我正在考慮讓它打開讓我們說5分鐘,如果沒有人使用它後,它會關閉,或者如果有人使用它,它會保持另外5分鐘,你認爲什麼?你會碰巧有任何關於你如何經常使用你的連接或任何材料來關聯我的課程,而這些課程沒有付費而且不是太舊?再次感謝答覆。 – Guapo 2011-06-16 17:47:39