當連接到遠程主機時,mysql連接速度是否很慢?或者它應該與連接到本地主機有相同的性能?當連接到遠程主機時,mysql是否正常緩慢?
我注意到一個小的性能差異,當我試圖連接到遠程主機,所以我想知道如果這是正常的?
當連接到遠程主機時,mysql連接速度是否很慢?或者它應該與連接到本地主機有相同的性能?當連接到遠程主機時,mysql是否正常緩慢?
我注意到一個小的性能差異,當我試圖連接到遠程主機,所以我想知道如果這是正常的?
這完全取決於程序和MySQL數據庫服務器之間的網絡連接。緩慢的網絡會使數據庫顯得很慢。
我期望一個「小的性能差異」(正如你所描述的那樣)對於遠程連接來說是正常的。
取決於「遠程」是。對於本地網絡來說,它可以忽略不計;爲了連接到世界各地的服務器,它會像糖漿一樣慢。 – Piskvor 2011-02-08 16:33:40
假設遠程機器的處理能力與本地機器相同,那麼主要的速度差異應該是網絡延遲 - 網絡流量的往返時間。如果您發送大量數據(例如,讀取或寫入大型BLOB),則網絡帶寬也可以發揮作用,並且「慢」下來。但總的來說,往返成本往往是最大的因素。如果您正在執行大量「小型」查詢,則將本地連接與遠程連接進行比較時,此成本差異可能非常顯着。
出於好奇,我剛剛運行了一個我已經構建的測試,它只是運行一堆更新查詢。這不是使用MySQL,而是另一個客戶端/服務器DBMS。因此,結果可能會有所不同,但這個想法是相同的,我會想到相對差異不會有顯着差異。
Local host (using IPC comm): 5.3 seconds
Remote host (UDP comm): 20.2 seconds
這涉及大約50,000次操作。對於1字節有效載荷的數據包,遠程主機在局域網上有2跳(如果我正確測量的話),往返延遲約爲0.25毫秒。
默認情況下,MySQL服務器將在客戶端第一次連接到它時執行反向DNS查找。然後它將它存儲在它的緩存中。這可能會影響性能,具體取決於反向DNS解析的速度。
它可以依賴於MySQL的多少查詢你正在做的:Slow MySQL Remote Connection
您可以通過將許多小查詢到較大的優化代碼。
定義「慢」。是的,連接到遠程主機可能比本地連接慢。您是否會在實際使用中看到任何明顯的影響取決於很多事情(您在做什麼?您傳輸了多少數據?您使用的是連接池嗎?) – 2011-02-08 16:34:21