第11回 CakePHPの「DEBUG値」を極める!:CakePHPで高速Webアプリ開発|gihyo.jp … 技術評論社
core.phpで、DEBUG値を2に設定すると、
DBへのクエリーのデバッグ情報が以下のように出力される。
3 queries took 1 ms
Nr Query Error Affected Num. rows Took (ms) 1 DESCRIBE `tasks` 5 5 1 2 SELECT `Task`.`id`, `Task`.`content`, `Task`.`status`, `Task`.`created`, `Task`.`modified` FROM `tasks` AS `Task` WHERE `Task`.`status` = 'yet' ORDER BY `Task`.`created` ASC 3 3 0 3 SELECT `Task`.`id`, `Task`.`content`, `Task`.`status`, `Task`.`created`, `Task`.`modified` FROM `tasks` AS `Task` WHERE `Task`.`status` = 'done' ORDER BY `Task`.`modified` DESC 1 1 0
- * queries took * ms 実行したクエリの数と,合計時間
- Nr 実行したクエリーの連番
- Query 実行したSQL文
- Error クエリがエラーだった場合,エラー情報
- Affected UPDATEやDELETEの際は,影響した行数が入る。 SELECTの場合は結果の行数
- Nom. rows結果の行数
- Took (ms) DB上でのクエリの実行時間と考えて差し支えないが、CakePHPコア内の処理時間の一部も含まれるため,DB上での実行時間だけとは限らない。APCなどのPHPアクセラレータを導入した際にこの値が短縮されることがある。
クエリの合計時間とクエリ1つ1つについての情報が列挙されるので,
だいぶ充実した内容になっている。
どんなクエリを発行していて、
どのくらい実行に時間がかかっているかが分かるため,
ボトルネック調査のときなどにかなり重宝するはず。