Cakephp 2.5响应时间慢


cakephp 2.5 slow response time

我得到了这个函数:

public function index() {
    $this->set('var', $this->Model->find('all'));
}

此操作需要超过3秒才能完成。当我注释掉find (query)时,它只花了0.02秒。我已经尝试将debug设置为0 -没有帮助。我发现只有第一个查询需要这么长时间来执行,其他任何查询都在0.01秒内完成。我知道cakephp在第一次调用数据库时正在创建对象,并且我已经调试过了,这就是为什么需要这么长时间来处理。

现在我的问题是:这是怎么可能的,当我执行索引从本地主机只需要0.03秒,但当我做同样的远程服务器需要超过3秒?服务器本身既不老也不慢,而且有很好的处理器和RAM。我已经尝试设置set global innodb_stats_on_metadata=0;但这也无济于事。

我真的需要比3秒更好的响应时间来简单的查询。我真的需要你的帮助。

好吧,伙计们,我很高兴我在一些帮助下弄明白了。问题出在app/config/database.php文件看起来像这样:

public $default = array(
    'datasource' => 'Database/Mysql',
    'persistent' => false,
    'host' => 'db.domain.com',
    'login' => 'login',
    'password' => 'password',
    'database' => 'database',
    'prefix' => '',
    'encoding' => 'utf8'
);

当我将host更改为'localhost'时:

public $default = array(
    'datasource' => 'Database/Mysql',
    'persistent' => false,
    'host' => 'localhost',
    'login' => 'login',
    'password' => 'password',
    'database' => 'database',
    'prefix' => '',
    'encoding' => 'utf8'
);

mysql对象的创建从超过4秒减少到0.03秒。我仍然不敢相信,如果有人能告诉我为什么会有这么大的不同,我会很感激,但这个小小的改变帮助我解决了我的问题。我希望它也能帮助到别人。

Redrif,我通常会建议分页,但基于您只检索15条记录的事实,您可能希望考虑限制/删除正在检索的关联数据的数量。

删除所有关联数据:

$this->set('var', $this->Model->find('all', array('recursive' => -1)));