2011-04-30 80 views
0

优化zend查询需要太多时间来执行。采用全Zend的查询中,而在loop.And循环我执行完整的查询,并在一个阵列合并他们..在我有一个数组的结果,但需要太多的时间来执行下面..是精确的情况下在while循环中使用完整的zend查询。并在循环中执行完整查询并将它们合并到一个数组中

while($str){ 
    $db = Zend_Registry::get('dbadapter'); 
    $select = new Zend_Db_Select($db);  
    $select = $db->select(); 

    // my business logic omitted 

    $stmt = $select->query(); 
    $result = $stmt->fetchAll(); 

    // after execution merge the record in new array ($final_result) 
    $temp_arr = $result; 
    $final_result = array_merge($final_result,$temp_arr); 
    unset($temp_arr); 
} 
+0

什么是$ str的方式..... ????? – Pushpendra 2011-04-30 14:13:48

+0

你说过运行查询需要很长时间,但是你省略了正在执行的实际查询。你可以在你正在使用的**真实代码中编辑吗? – Charles 2011-04-30 15:29:51

+0

毫不奇怪,循环中包含查询的代码段需要很长时间才能执行。 – 2011-04-30 17:40:50

回答

3

你不必写下面的循环中的代码,把它们写在循环外...

$db = Zend_Registry::get('dbadapter'); 
$select = new Zend_Db_Select($db); 
$select = $db->select(); 
$stmt = $select->query(); 

然后写在循环中下面的代码:

$result = $stmt->fetchAll(); 

$final_result[] = $result; 

unset($result); 

本准则可以帮助你。 ..... 。

+0

,如果我没有错,“$ select = new Zend_Db_Select($ db)”和“$ select = $ db-> select();”正在做同样的事情。 – regilero 2011-04-30 22:03:07