スロー クエリ ログを有効にして、実行に 2 秒以上かかるクエリと、インデックスを使用していないクエリをログに記録しました。
インデックスを使用しているいくつかの頻繁なクエリが引き続きログに表示されることに気付きました
サンプルクエリ
SELECT `a`.`orderid`, `a`.`date`, `a`.`status`, `a`.`restname`, `a`.`admin_user`, `a`.`model_type`, `b`.`name` as cityname
FROM `tk_order` AS a
INNER JOIN `tk_city` AS b ON `a`.`cityid` = `b`.`id`
WHERE `a`.`date` = '2012-04-09'
AND `a`.`status` = 0
AND `a`.`mode` = 3
ORDER BY `a`.`orderid` desc;
上記のクエリでは、(日付、ステータス、モード) の複合インデックスを追加しました。実行すると、これが出力になります。
1 SIMPLE a ref cityid,date_3 date_3 4 const,const 6 Using where; Using temporary; Using filesort
1 SIMPLE b index PRIMARY,id id 52 2 Using where; Using index; Using join buffer
order テーブルには約 100000 のレコードがありますが、ここで何が間違っているのかわかりません。