Paginación Y Execución De La Query Varias Veces

Estoy paginando algunos resultados, un código típico puede ser este:


$criteria = new CDbCriteria();

    $count=Article::model()->count($criteria);

    $pages=new CPagination($count);


    // results per page

    $pages->pageSize=10;

    $pages->applyLimit($criteria);

    $models = Post::model()->findAll($criteria);


    $this->render('index', array(

    'models' => $models,

         'pages' => $pages

    ));

Mi duda es, ¿cuantas veces se ejecuta la consulta aquí?


$count=Article::model()->count($criteria);

Ejecuta la consulta para saber el número de resultados.


$pages->applyLimit($criteria);

Aquí no estoy seguro si se vuelve a ejecutar.


$models = Post::model()->findAll($criteria); 

Y aquí se vuelve a ejecutar finalmente para tener los resultados.

Seguramente esté equivocado, ¿alguna idea?

No te he entendido nada.

Pero a ver si me logro explicar.

En tu código accedes 2 veces a la base de datos.

Aquí:




$count=Article::model()->count($criteria);



Y aquí:




$models = Post::model()->findAll($criteria);



Y cada una de esas 2 consultas se ejecuta una única vez.

Cuál es el problema?

Un saludo.

Solamente quería saber eso, si el hecho de poner una paginación implica que una consulta (que puede ser pesada ya de por sí) se tenga que ejecutar por duplicado.

Si no me equivoco, se ejecutarán esas 2 consultas cada vez q cambies de página, por ejemplo.

Un saludo.