- 1
$istmount = mysql_num_rows(mysql_query("SELECT `cid` FROM `usermail` WHERE `date` >='".date('Y-m-d', strtotime('-1 month'))."'"));
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+61
$istmount = mysql_num_rows(mysql_query("SELECT `cid` FROM `usermail` WHERE `date` >='".date('Y-m-d', strtotime('-1 month'))."'"));
Подсчет количества подписчиков за прошлый месяц. Про count(*) автор, похоже, не в курсе...
И, чтобы не было вопросов про формат поля даты:
date - это varchar(11) :)
Шикарно )
Вопросы есть?
Если вообще уместно это выводить для DDL...
Или Вы можете доказать, что перформанс будет разный?
Для not null полей скорее всего будут одинаковые планы в обоих случаях.
Для полей с null'ом, возможно, count(field) будет не быстрее count(*).
Мы ж уже выяснили, что field - идентификатор, суррогатный ключ и результаты будут ОДИНАКОВЫЕ.
> Для not null полей скорее всего будут одинаковые планы в обоих случаях.
Верно.
> Для полей с null'ом, возможно, count(field) будет не быстрее count(*).
А тут уже как статистика и индексы лягут.
Где мы это выяснили? Вы просто выдвинули предположение "Да, если поле field - идентификатор, то разницы не будет.", к которому у меня никаких претензий нет.
>А тут уже как статистика и индексы лягут.
Да, согласен с вами, но count(field) в любом случае не будет быстрее count(*).
А кстати так не во всех БД.
UPD: Если похапшники всегда пишут count(поле), при этом не написав not null... то мне жалко сервера...
count(expression) -number of input rows for which the value of expression is not null