我有一个模型结构:Category hasMany Product hasMany Stockitem belongsTo Warehouse, Manufacturer。
我使用这段代码获取数据,使用 containable 能够在相关模型中进行更深入的过滤:
$this->Category->find('all', array(
'conditions' => array('Category.id' => $category_id),
'contain' => array(
'Product' => array(
'Stockitem' => array(
'conditions' => array('Stockitem.warehouse_id' => $warehouse_id),
'Warehouse',
'Manufacturer',
)
)
),
)
);
数据结构返回得很好,但是,我得到多个重复查询,例如,有时基于数据集连续数百个这样的查询。
SELECT `Warehouse`.`id`, `Warehouse`.`title` FROM `beta_warehouses` AS `Warehouse` WHERE `Warehouse`.`id` = 2
基本上,在构建数据结构时,Cake 会一遍又一遍地从 mysql 中获取数据,对于每一行。我们有几千行的数据集,我感觉它会影响性能。是否可以使其缓存结果而不重复相同的查询?