![](/img/trans.png)
[英]Create Query with doctrine 1.2 in which table name needs to be from database
[英]Doctrine 1.2 Pager - Does it reduce the amount of data requested from the database
如果我剛從數據庫中抓取到一個結果集時,其結果集大約在1k標記之內,那件事就讓我有些不解。
如果我使用Doctrine(v1.2)_Pager限制為每頁25個。 它會將從數據庫中提取的數據量減少到僅25個嗎?還是仍然搶着整個數據集然后減少呢?
如此實現:
$perPage = 25;
$numPageLinks = 25;
$pager = new Doctrine_Pager($q, $input->page, $perPage);
$result = $pager->execute(array(), Doctrine::HYDRATE_ARRAY);
$pagerRange = new Doctrine_Pager_Range_Sliding(
array('chunk' => $numPageLinks), $pager
);
$pagerUrlBase = '...';
$pagerLayout = new Doctrine_Pager_Layout(
$pager, $pagerRange, $pagerUrlBase);
$pagerLayout->setTemplate('...');
$pagerLayout->setSelectedTemplate(
'...'
);
$pagerLayout->setSeparatorTemplate('...');
$this->view->records = $result;
教義的傳呼機將僅請求25條記錄。
您可能會將其與Zend_Paginator_Array
東西混淆,后者會使用完整的數組並根據配置對其進行修整。
我建議您啟用mysql query log ,並尾隨生成的日志文件。 有了它,您可以看到針對每個請求發出的確切查詢。 如Mike B所述, Doctrine_Pager
將發出分頁查詢,這將導致限制,偏移量組合,但是通過尾隨查詢日志文件,您可能會看到其他您不期望的查詢。
例如,在尾隨日志文件時,我驚訝地發現Doctrine unlink
方法被復制了。 我仍然不知道是Doctrine還是Symfony發出重復的刪除查詢,所以我只是編寫了自己的取消鏈接,從而提高了數據庫/應用程序的性能。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.