Правильно ли я сказать ... чтобы получить общее количество строк в таблице (для возврата в count ())?
ВЫБЕРИТЕ СЧЕТЧИК (*) ИЗ ПОЛОЖЕНИЙ
Это, безусловно, один из способов получить результат, который вы ищете.Выполнение второго запроса не так уж и плохо, если ваша таблица / индексы оптимизированы.
Существует альтернатива.Вы можете включить выражение «SQL_CALC_FOUND_ROWS» в свой исходный запрос, тогда ваш второй запрос будет состоять только из:
«SELECT FOUND_ROWS ();»
См. Следующую ссылку для получения дополнительной информации об этомфункциональность: http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_found-rows
Конечно, это предполагает, что вы используете MySQL.
В моем текущем проекте меня не слишком беспокоит производительность, но необходимость в 2вопросы, только что заставили меня задуматься ...
Это, безусловно, серьезная проблема, особенно когда количество записей начинает увеличиваться.Что делает Zend_Paginator великолепным, так это тот факт, что вы можете внедрить экземпляр Zend_Cache_Core.Это гарантирует, что вы будете выполнять эти запросы только минимальное количество раз в зависимости от того, как долго будет храниться ваш кеш.
См. Следующую страницу для получения дополнительной информации о функциях кэширования: http://framework.zend.com/manual/en/zend.paginator.advanced.html#zend.paginator.advanced.caching