CakePHPでは、モデルにアソシエーションを設定している場合、recursive(=>joinする階層)はデフォルトで0に設定されています。「recursiveゼロ」の意味するところとは、「1跨ぎまでのJoinを行う」ということになり、Find()関数を使用した場合、デフォルトの状態でJoinが行われてしまいます。テーブル単体でfindしたい場合などは、find()の前に$recursive = -1とすることで余計なjoin処理を省略することができます。join先のテーブルのレコード数が多い場合などは効果絶大。 例 「User」とそれに紐付く「Usercomment」モデルを用意しました。 -- usersテーブル CREATE TABLE IF NOT EXISTS `users` ( `id` INT NOT NULL AUTO_INCREMENT , `username` VAR
![recursive設定によるfind()性能改善](https://cdn-ak-scissors.b.st-hatena.com/image/square/6dd3eeb0d8f1746badd1e6b9523a492db0f4412c/height=288;version=1;width=512/http%3A%2F%2Fkwski.net%2Fblog%2Fwp-content%2Fuploads%2F2013%2F05%2Fcakephp-150x150.png)