执行简单数据库查询时CakePHP的响应非常慢

use*_*929 1 php cakephp cakephp-model

我是CakePHP框架的新手,正在尝试设置一个"Hello World"项目.在处理它时,我在执行简单的数据库查询时遇到了来自CakePHP的非常慢的响应.

以下是我所做的步骤:

  1. 下载CakePHP框架(2.3.0 RC1)并进行设置
  2. 使用名为"Tests"的空表创建"Test"DB.
  3. 编辑默认的AppController.php文件,如下所示:

    class AppController extends Controller {
    
        var $uses = array('Test');
    
        function say_hello() {
        $this->Test->query("select * from test where id=0");
        echo "hello";
        }
    }
    
    Run Code Online (Sandbox Code Playgroud)
  4. 之后,我访问了"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";
    }
}
Run Code Online (Sandbox Code Playgroud)

然后,它只需要大约60ms来响应.

这对我来说似乎不对,因为在空表上执行简单查询不应该花费~940ms.我尝试使用DebugKit进行调试,它表明ControllerAction(在这种情况下,say_hello动作非常简单)占用了超过1秒的处理时间.另请注意,缓慢问题不是由DB引起的,因为DebugKit表明在执行say_hello操作时只有一个查询,并且该查询几乎需要0ms才能完成.

我不确定是什么导致这种缓慢.任何经验丰富的CakePHP成员能否告诉我一些关于这种情况下错误的信息?我还应该做些什么来解决问题并解决问题?

谢谢.

Mar*_*son 7

在调试模式下,CakePHP将在很短的时间内刷新数据库绑定,对象缓存和模式,描述映射到已定义模型的表.

在测试CakePHP应用程序性能之前,请确保将调试级别更改为0.