Zend framework 手工查询与findDependentRowset

Zend framework 手工查询与findDependentRowset,zend-framework,zend-db-table,Zend Framework,Zend Db Table,我已经用Zend构建了一个相当大的应用程序,我想知道手工构建查询(使用Zend对象模型)哪个更好 或者使用findDependentRowset方法() 我很好奇,因为我做了一个测试,从多个表中获取数据,并显示表中的所有信息,findDependentRowset似乎运行得比较慢。我可能错了,但我猜每次调用findDependentRowset时,它都会进行新的查询,如中所示: $table1 = new Model_Table1; $rowset = $table1-fetchAll(); f

我已经用Zend构建了一个相当大的应用程序,我想知道手工构建查询(使用Zend对象模型)哪个更好

或者使用
findDependentRowset
方法()

我很好奇,因为我做了一个测试,从多个表中获取数据,并显示表中的所有信息,
findDependentRowset
似乎运行得比较慢。我可能错了,但我猜每次调用
findDependentRowset
时,它都会进行新的查询,如中所示:

$table1 = new Model_Table1;
$rowset = $table1-fetchAll();
foreach($rowset as $row){
    $table2data = $row->findDependentRowset('Model_Table2', 'Map');

    echo $row['field'] . ' ' . $table2data['field'];
}
那么,哪一个更好?有没有一种方法可以使用
findDependentRowset
来构建可以跨越5个表的复杂查询,这些表的运行速度与手工查询一样快


谢谢

一般来说,构建您自己的查询是最好的方式,因为zend将只创建一个对象(或一组对象)并只执行一个查询

如果使用findDependentRowset,Zend将执行另一个查询,并使用每次调用的结果构建另一个对象(或集合)

您应该仅在非常特定的情况下使用此选项

见这个问题:

$table1 = new Model_Table1;
$rowset = $table1-fetchAll();
foreach($rowset as $row){
    $table2data = $row->findDependentRowset('Model_Table2', 'Map');

    echo $row['field'] . ' ' . $table2data['field'];
}