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 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
手(パー)To make a comment: Please type your name and comment. at the validation field box, type 'cakephp'. And there two glay buttons. "Preview"/"Submit". Thank you!