簡體   English   中英

Doctrine 1.2 Pager-它是否減少了從數據庫請求的數據量

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM