質問: $category_items.item_id order by modified_at asc limit $number ``` といった感じの処理を早くしたいのかなと思ったのですが、インデックスを貼るとorder byの動作に影響を与えるかどうか気になったので、 教えていただければと思います。
回答: explainで実行計画を取ると分かるかと。 SQLから意図が読み取りにくので、想定になるのですが、 category_idとmodified_atの複合インデックスということなので、 対象のSQLでは効果は得られません。 オプティマイザがいい感じに解釈してくれれば有効かもしれませんが、 order byをcategory_id,modified_atにしたほうが確実です。 中間テーブルということなので、数千件しかないことはないと思われるのですが、 limitをかけない時の件数が3~4千件の場合もインデックスが利用されないので、 パフォーマンスに影響はありません。 余計な詮索ですいませんが、 このSQLですが中間テーブルから全件持ってきて、 最近更新された数件を取得するような処理で間違いないでしょうか。