私は CakePHP フレームワークが初めてで、「Hello World」プロジェクトをセットアップしようとしています。これに取り組んでいるときに、単純な DB クエリを実行すると、CakePHP からの応答が非常に遅くなることを経験しました。
私が行った手順は次のとおりです。
- CakePHP フレームワーク (2.3.0 RC1) をダウンロードしてセットアップします
- 「Tests」という名前の空のテーブルで「Test」DB を作成します。
デフォルトの AppController.php ファイルを次のように編集します。
class AppController extends Controller { var $uses = array('Test'); function say_hello() { $this->Test->query("select * from test where id=0"); echo "hello"; } }
その後、「http://localhost/app/say_hello」というリンクにアクセスしたところ、応答に1秒以上かかりました。
次のようにクエリステートメントをコメントアウトした場合:
class AppController extends Controller {
var $uses = array('Test');
function say_hello() {
//$this->Test->query("select * from test where id=0");
echo "hello";
}
}
その後、応答するのに約 60ms しかかかりませんでした。
空のテーブルで単純なクエリを実行するのに約 940 ミリ秒かかるはずがないため、これは私には正しくないようです。DebugKit でデバッグを試みたところ、ControllerAction (この場合、say_hello アクションは非常に単純です) が 1 秒以上の処理時間を取っていることがわかりました。また、遅延の問題は DB が原因ではないことに注意してください。DebugKit は、say_hello アクションの実行時にクエリが 1 つしかないことを示し、そのクエリが完了するまでにほぼ 0 ミリ秒かかりました。
何がそのような遅さの原因なのかわかりません。この場合の何が問題なのか、経験豊富な CakePHP メンバーが教えてくれますか? 問題をトラブルシューティングして修正するには、他に何をすべきですか?
ありがとう。