Как правильно подсчитать количество строк в таблице MySQL
так:
Код:
$numrows = mysql_num_rows(mysql_query("SELECT * FROM my_table"))
или так:
Код:
$sql=mysql_fetch_array(mysql_query("select count(1) from my_table;"));
$rows=$sql[0];
$rows=$sql[0];
Облазил весь интернет кто то говорит что первый вариант лучше кто то что второй. Решил зайти сюда спросить. Подскажите.
З.Ы. В таблице очень много строк
Моё мнение ни на чём не основано, но я считаю, что второй вариант лучше. Вроде даже писали, что count(*) лучше писать.
при первом варианте mysql-сервер будет передавать ВСЕ строки из таблицы скрипту
Спасибо за ответы :) Буду юзать второй вариант:)
Цитата: int
Вроде даже писали, что count(*) лучше писать.
Наоборот, count(1) работает на несколько процентов быстрее, чем count(*), я даже статью на эту тему читал. Правда, разница в скорости будет заметна на таблицах с миллионами записей.
Первый вариант намного медленнее, ибо действительно БД будет передавать все имеющиеся записи к backend'у (типа пхп), а тот уже будет их считать.
У меня как-то был сайтик, и он обращался к базе данных через медленную сеть. Вот тогда я и узнал, что mysql_num_rows лучше не использовать :)
mysql_num_rows($result) следует использовать не для подсчёта "всего строк в таблице", а сколько строк в конкретной выборке$result.