1
我在一個Cloud SQL實例(鍵入D1 mysql 5.6.16)上執行以下查詢,需要11秒才能完成。在我的共享主機上(這在規格上沒有什麼特別之處)在MySQL(v5.5.35)上運行相同索引和內容的完全相同的數據庫上,查詢僅需0.068秒。Cloud SQL和本地服務器上的重要查詢時間差異
查詢:
SELECT casenotes.caseworkerID,COUNT(*)
FROM emails LEFT JOIN (casenotes) ON (emails.ID=casenotes.subtypeID)
WHERE emails.type='sent' AND casenotes.type='email' AND
emails.datetime > '2014-05-01'
GROUP BY casenotes.caseworkerID;
這是雲的SQL服務器上的解釋結果
id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE casenotes ref type,subtypeID,caseworkerID type 22 const 6447 Using index condition; Using where; Using temporary; Using filesort 1 SIMPLE emails eq_ref PRIMARY,ID,type,datetime PRIMARY 8 casework_test.casenotes.subtypeID 1 Using where
這是解釋我的共享主機
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE casenotes ref type,subtypeID type 22 const 6451 Using where; Using temporary; Using filesort 1 SIMPLE emails eq_ref PRIMARY,type,datetime PRIMARY 8 zahawizs_caseworker.casenotes.subtypeID 1 Using where
不結果任何人都有任何su我可以調整我的select語句或Cloud SQL服務器實例以更快地返回它。
是的,請不要使用MyISAM。 InnoDB提供事務支持,並實現自己的內存管理。 Cloud SQL針對InnoDB進行了優化。此外,在Cloud SQL中,使用fileort的查詢目前速度較慢。因此,爲了獲得最佳性能,請避免這種情況。 –
有關如何避免使用該查詢進行文件排序或強制使用其他方法的任何建議 – SimonSmethMac
刪除GROUP BY是否會使filesort消失? –