Mysql_num_rows пересчитывает все строки, или он просто захватывает итог после оператора select? - PullRequest
0 голосов
/ 06 октября 2009

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

Ответы [ 2 ]

1 голос
/ 06 октября 2009

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

это имеет интересное значение для запросов с LIMIT. mysql_num_rows () возвращает количество строк, возвращаемых после применения LIMIT. если вы используете ключевое слово SQL_CALC_FOUND_ROWS в своем операторе SELECT, mysql_num_rows () возвращает количество строк, которые были бы возвращены, если бы LIMIT не использовался. это полезно для подкачки.

0 голосов
/ 06 октября 2009

Цитируя руководство буквально, оно «извлекает количество строк из набора результатов». Очевидно, он не запускает второй запрос, если это ваш вопрос (не уверен, что вы подразумеваете под «пересчетом всех строк»).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...