0
我剛剛運行mysql解釋來檢查一個查詢,並驚訝地發現它必須檢查超過250000條記錄來對結果進行排序,但是我有where子句和任何mysql解釋給出的索引我完全一致的,許多新行已添加那麼如何來解決這個問題.mysql表結構mysql的優化說明輸出
tableA is a forum where users can post the content
id userid created title
1 3 12232 xyz
2 etc...............
我的MySQL查詢的這個
explain SELECT * from tableA where userid='2' order by created desc limit 3
輸出解釋查詢
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE tableA ref userid userid 4 const 275216 Using where; Using temporary; Using filesort
我的問題是如何減少到3-4,因爲我有興趣只顯示三個結果,但mysql正在顯示輸出之前搜索275216記錄。因爲275216記錄已經在用戶2在論壇上發佈後創建,但是告訴mysql只查看特定數據的解決方案是什麼,以便它可以從非常小的一組行中搜索結果,我希望最大20-30行mysql應該搜索服務器3行
試圖輸出功率爲274487的用戶ID indexexonly用戶ID應結合我的用戶ID和一個指數 – raviloves
創建的'userid' int或VARCHAR類型? –
它的int(11).... – raviloves