2012-12-11 24 views
0

我知道這是非常基本的。但是想清除一些mysql連接的概念。我有以下情況。MySQL連接的數量和容量

  • db服務器和web服務器位於不同的位置。
  • Web服務器正在運行基於文章的網站。
  • 文章數據存儲在數據庫服務器。
  • Web服務器每秒傳遞100篇文章/頁面。

我的問題如下:Web服務器和數據庫服務器之間

  • 單連接可以處理它?
  • 默認情況下會創建多少個連接?
  • 如果我假設連接爲管道,每個連接的I/O容量是多少?
  • 數據庫服務器的RAM,處理器,操作系統和連接數之間是否有任何關係?

在此先感謝

回答

0

Web服務器和數據庫服務器可以處理它之間的單連接?

單個連接可以傳遞多個請求,但不能同時傳遞,並且只能傳遞一個客戶端進程。因此,最佳擴展方法可能是每個Web服務器進程的一個連接池,其中線程可以獲取已建立的連接以執行其請求,並在完成後將連接返回到池。

默認情況下會創建多少個連接?

取決於客戶端語言,MySQL連接器實現,您使用的框架,Web服務器配置以及可能的一堆其他細節。所以最好的辦法是簡單地查看MySQL服務的網絡連接列表,例如使用lsofnetstat

如果我假設連接是管道,每個連接的I/O容量是多少?

限制因素可能是共享資源,如網絡帶寬或任一端的處理能力。所以連接數量不應該對數據傳輸速率產生很大的影響。但建立連接的開銷很大,這就是爲什麼我建議減少使用池的連接數量的原因。

數據庫服務器的RAM,處理器,操作系統和連接數之間是否有任何關係?

可能是,如果某些應用程序根據這些參數做出選擇,但總的來說我會認爲這不太可能。