Ограничение данных MySQL

Задача: получить данные из MySQL с определенным limit и offset, узнать количество всех элементов в таблице( то есть без применения к ней limit и offset ).
На ум приходит следующее решение: получаем все данные без учета limit и offset, затем, без SQL считаем их и обрезаем.
Можно, конечно, указать limit и offset в SQL запросе выбора, но тогда придется вызывать отдельный SQL запрос для счета всех элементов.
Как будет быстрее всего?
  • Вопрос задан
  • 2593 просмотра
Решения вопроса 1
fornit1917
@fornit1917
Следует делать два запроса: для выборки данных запрос с limit и offset, для количества - запрос без limit и offset, но с функцией count (данные тянуть не надо, только кол-во).
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
tyzhnenko
@tyzhnenko
System Administrator, DevOps, QA Engineer
Используйте SQL_CALC_FOUND_ROWS при селекте с лимитом, MySQL посчитает все записи подходящие под параметры.

SELECT SQL_CALC_FOUND_ROWS * FROM TABLE1 WHERE .... LIMIT 40;
SELECT FOUND_ROWS()
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы