2011年03月08日

DEBUG=0なのにDESCRIBEが頻発する

うひゃ〜久しぶりの更新だ。

今回、依頼されて調査したのは、「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);

がアンコメントされていることに気が付きました。
標準通りコメントアウトしたところ、無事に動作が戻りました。
posted by SDozono at 16:25| 東京 ☁| Comment(0) | TrackBack(0) | CakePHP General | このブログの読者になる | 更新情報をチェックする
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。