Ответ 1
Count (*) подсчитывает все записи, включая нули, тогда как Count (имя поля) не содержит нулей.
Довольно сам объяснительный вопрос. Есть ли какая-нибудь причина для использования того или другого?
Count (*) подсчитывает все записи, включая нули, тогда как Count (имя поля) не содержит нулей.
Выберите count (*), выберите любую строку, выберите count (field), выберите строки, где это поле не равно null.
Если вы хотите повысить производительность (то есть быть полной нацистской работой), вам может и не понадобиться.
Пример:
SELECT COUNT(1) FROM MyTable WHERE ...
Это тоже озадачило меня.
В MySQL не менее COUNT(*)
подсчитывается количество строк, в которых каждое значение (*) в строке не равно нулю. Просто COUNT
в столбце будет подсчитываться количество строк, в которых этот столбец не равен нулю.
С точки зрения производительности с использованием одного столбца будет немного быстрее,
count (*) быстрее, если тип таблицы - MyISAM без оператора WHERE. С ГДЕ скорость будет одинаковой для MyISAM и InnoDB.