Когда вы ограничиваете количество строк, возвращаемых SQL-запросом, обычно используемым в разбивке по страницам, существует два метода определения общего количества записей:
Метод 1
Включите параметр SQL_CALC_FOUND_ROWS
в исходный SELECT
, а затем получите общее количество строк, введя SELECT FOUND_ROWS()
:
SELECT SQL_CALC_FOUND_ROWS * FROM table WHERE id > 100 LIMIT 10;
SELECT FOUND_ROWS();
Метод 2
Выполните запрос в обычном режиме, а затем получите общее количество строк, выполнив SELECT COUNT(*)
SELECT * FROM table WHERE id > 100 LIMIT 10;
SELECT COUNT(*) FROM table WHERE id > 100;
Какой метод самый лучший / быстрый?