cakePHPのmodelでFORCE INDEXを使用する方法
なんかうまくINDEXが使用されない箇所があって、たまにFORCE INDEXが使いたくなる事ってあると思います。
cakePHPだと、FORCE INDEXを書く方法が無いように見えますが、意外と簡単にFORCE INDEXを書く事ができます。
基本的にテーブル名の後ろに文字列入れられればいいので、実はjoinsに記載していまうのがいいんです。
最初はAppModelいじったり、DataSorce拡張しようとか考えましたが、ここはシンプルな方法で行くのが良いのでjoinsで書く事にしました。
書き方
|
|
生成されたクエリみてみると普通に実行されていました。
|
|
ちなみにUSE INDEXもjoinsキーのなかで書く事ができます。(って言わなくてもわかるか…w
まあEXPLAIN使って調査して、使われるはずなのにINDEX使われなかったりしたら、FORCEかUSEをjoinsの部分に書いてあげれば問題ないとおもいます。