cakephp与containable

cakephp与containable,cakephp,Cakephp,我正在使用cakephp(2.4.7)进行开发,并使用containable选项 我有几个find语句,在containable数组中有大约15个表/模型,我的查询日志显示了大约60-100个查询 由于性能更好,我应该使用联接而不是containable吗 我的网站需要高性能标准 是否可以根据Containeable之类的链接模型自动连接,还是必须手动设置连接,如: 例如: $this->Message->find('all', array( 'joins' => a

我正在使用cakephp(2.4.7)进行开发,并使用containable选项

我有几个find语句,在containable数组中有大约15个表/模型,我的查询日志显示了大约60-100个查询

由于性能更好,我应该使用联接而不是containable吗

我的网站需要高性能标准

是否可以根据Containeable之类的链接模型自动连接,还是必须手动设置连接,如:

例如:

 $this->Message->find('all', array(
    'joins' => array(
        array(
            'table' => 'users',
            'alias' => 'UserJoin',
            'type' => 'INNER',
            'conditions' => array(
                'UserJoin.id = Message.from'
            )
        )
    ),
    'conditions' => array(
        'Message.to' => 4
    ),
    'fields' => array('UserJoin.*', 'Message.*'),
    'order' => 'Message.datetime DESC'
));

指导我实现目标的正确方法。

Contain需要大量系统资源才能从表中生成数据,因为它需要进行大量查询并对每个表应用Hash::nest()函数

但是,通过连接,您将获得大量重复的数据,并且您需要自己从中提取数据。不是最好的解决办法,嗯

我不知道哪一个更适合您,但获得最佳性能结果的最佳方法是在表和缓存中使用索引