我在slowquerys日誌中發現了這個查詢。slowquery有什麼不對?
SELECT GREATEST(IFNULL(`twk-status`.`status`,0) , `groups`.`status`)
FROM `groups`
LEFT JOIN `twk-status` ON
(`twk-status`.`groupID` = `groups`.`ID`
AND `twk-status`.`startdate` <= FROM_UNIXTIME(1317204000)
AND `twk-status`.`enddate` >= FROM_UNIXTIME(1317204000)
AND ISNULL(`twk-status`.`deleted`)
AND `twk-status`.`groupID` = 11)
WHERE `groups`.`ID` = 11;
我跑使用EXPLAIN產生以下報告的查詢:
id table possible_keys key
1 twk-status groupID,groupID_2,enddate NULL
1 groups PRIMARY PRIMARY
這意味着MySQL並沒有使用任何的TWK狀態表中的三個可能的密鑰。正確?
下面是從TWK狀態
groupID (groupID)
groupID_2 (groupID, startdate, enddate, deleted)
enddate (enddate, createdate, deleted)
鍵查詢使用組ID,開始日期,結束日期,刪除我想groupID_2對子級是關鍵。
或者這是查詢問題而不是索引問題?
謝謝先進。
這個`EXPLAIN`很奇怪。您能否發佈表格的定義和** EXPLAIN`的精確**輸出? – Quassnoi 2010-12-23 15:40:44
您正在使用哪個版本的MySQL? – Quassnoi 2010-12-23 16:13:27