このクエリがインデックスを使用していない理由を誰かに教えてもらえますか?私がインデックスを作成したidx_accessorieslinkid:
CREATE INDEX idx_accessorieslinkid ON `accessorieslink` (actionid);
私はインデックスに不慣れで、それらがどのように機能するかを理解しようとしています(そしてなぜ時々機能しないのですか!)
sql
SELECT action.actionid
FROM
ACTION
LEFT JOIN
(SELECT
SUM(accprice) AS accprice,
actionid
FROM
accessorieslink
GROUP BY actionid) AS accprice
ON accprice.actionid = action.actionid
WHERE action.typeid = '2'
AND actiondate2 BETWEEN '20130301' AND '20130301'
ORDER BY actiondate2 DESC
結果を説明する
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY action index_merge idx_actiontypeid,idx_actiondate idx_actiondate,idx_actiontypeid 4,5 141 Using intersect(idx_actiondate,idx_actiontypeid); Using where; Using index; Using temporary; Using filesort
1 PRIMARY <derived2> ALL 7804
2 DERIVED accessorieslink ALL 12175 Using temporary; Using filesort