2011-08-22 86 views
2

我想知道如果一個複雜的查詢(多個LEFT JOIN的,一些子SELECT和一些GROUP BY的)在遠程客戶端執行時比在本地客戶端中執行速度慢很多。MySQL:在遠程客戶端上比在本地客戶端上查詢速度慢嗎?

我一直認爲查詢完全在服務器上執行,並且只有發送的結果在WAN上比在LAN上慢。

但是,幾乎立即在本地執行的一些查詢似乎永遠持續在遠程客戶端。我正在使用Navicat,並通過普通的互聯網連接(20 mbit,1 mbit)訪問遠程服務器。

在客戶端和服務器之間可能還有一些交互,而查詢執行?也許一些緩存在本地比遠程快得多?! (以爲緩存服務器端發生過...)

UPDATE: 只是做了一個表上的非常大的考驗與500.000記錄與幾個子查詢的和組(查詢了700秒),使用SELECT COUNT圍繞複雜的查詢,並與SQL_NO_CACHE和它完全相同的時間遠程作爲本地....猜測它只是發送的數據是那麼慢遠程然後...

回答

3

不。只有數據量轉移和請求的數量將是一個因素。

Navicat可能會使用一些元通信 - 可能會運行一些小的查詢。