Пересчитывает ли mysql_num_rows все строки, или он просто получает итоговое значение после оператора select?

StackOverflow https://stackoverflow.com/questions/1526931

  •  20-09-2019
  •  | 
  •  

Вопрос

Я не был уверен, пересчитал ли он строки, или после того, как он извлек весь результирующий набор, он захватил только общий запрос post?

Это было полезно?

Решение

когда вы запускаете инструкцию, mysql отправляет количество строк в заголовке.так что нет, запрос не выполняется повторно, чтобы получить количество.

это имеет интересное значение для запросов с ОГРАНИЧЕНИЕМ.mysql_num_rows() возвращает количество строк, возвращаемых после применения ОГРАНИЧЕНИЯ.если вы используете ключевое слово SQL_CALC_FOUND_ROWS в вашем операторе SELECT, то mysql_num_rows() возвращает количество строк, которое было бы возвращено, если бы LIMIT не использовался.это полезно для подкачки по страницам.

Другие советы

Цитируя руководство пользователя буквально, он “извлекает количество строк из результирующего набора”.Очевидно, что он не запускает второй запрос, если это ваш вопрос (не уверен, что вы подразумеваете под “пересчитать все строки”).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top