Zend framework Zend Paginator限制行(优化)

Zend framework Zend Paginator限制行(优化),zend-framework,zend-db,zend-db-table,zend-paginator,Zend Framework,Zend Db,Zend Db Table,Zend Paginator,这是我的疑问: class services extends Zend_Db_Table{ function Get_Services($user_id){ $DB = Zend_Db_Table_Abstract::getDefaultAdapter(); $select = $DB->select() ->from(array('p' => 'phone_service')) ->j

这是我的疑问:

class services extends Zend_Db_Table{

 function Get_Services($user_id){
    $DB = Zend_Db_Table_Abstract::getDefaultAdapter();

    $select = $DB->select()
                ->from(array('p' => 'phone_service'))
                ->join(array('u' => 'user_preferences'), 'u.phone_service_id = p.phone_service_id')
                ->where('u.user_preferences_name = ?', 'is_user_package_active')
                ->where('p.user_id = ?', $user_id);
           return $select;
    }
  }
这是我的控制器:

class ServicesController extends Zend_Controller_Action{
       $instance = new services();
       $select = $instance->Get_Services($user_id);

       $adapter   = new Zend_Paginator_Adapter_DbSelect($select);
       $paginator = new Zend_Paginator($adapter);

       $page=$this->_getParam('page',1);
       $paginator->setItemCountPerPage(10);
       $paginator->setCurrentPageNumber($page);
       $paginator->setPagerange(5);
 }
我要做的是,首先查询所有行,然后执行以下操作:

 $adapter   = new Zend_Paginator_Adapter_DbSelect($select);
 $paginator = new Zend_Paginator($adapter);

我的问题是,如何优化它,使它只查询结果中的10行,而不是所有行?

使用
DbSelect
适配器,它只查询10行。分析您的查询并检查-您应该看到2个选择AFAIR-一个由ZF操作以获得行总数,另一个通过
LIMIT
OFFSET

获取实际数据,但在此之前,我正在进行查询,而不是应用Zend_Paginator_Adapter_DbSelect。这有什么关系吗?我看不到您进行查询。您正在创建一个
Select
对象,但它只是一个对象,在您通过
fetchXxx()
方法或分页器自己进行查询之前,不会进行查询。