今回、依頼されて調査したのは、「DEBUG=0に設定しているのに毎回DESCRIBEが発行されており、パフォーマンスに影響している」というものでした。
そんなこと起こるのかなぁと思ったら本当に発生していました。
まず最初に調べたのは、内部のコードで、DEBUGの値を変えていないか、というチェック。
Grepで一気に調べましたが、ありませんでした。
うーん、なんでだろう、と/app/tmp/cache/models を調べたところ、ファイルが生成されていないことが判明。
CakePHPは、テーブル構造の情報を DEBUG>0にしていると毎回チェックしますが、DEBUG=0にすると、「テーブル情報を/app/tmp/cache/models/内に書き込み、そのキャッシュを利用して速度を上げる」仕組みになっています。
つまり、キャッシュが生成されていないので毎回DESCRIBEが発行されていると判明。
ファイル権限をいろいろ調べましたが、そもそも/app/tmp/logs内のファイルなどは出力されています。
さらに調べたところ、core.php内の、
//Configure::write('Cache.disable', true);
がアンコメントされていることに気が付きました。
標準通りコメントアウトしたところ、無事に動作が戻りました。