Есть ли разница между следующими запросами, если в таблице есть первичное поле "id" (как в скорости и т.д.)?
SELECT COUNT(id)
FROM table
против.
SELECT COUNT(*)
FROM table
Ответ 1
Посмотрите Count (*) vs Count (col) на www.mysqlperformanceblog.com, они обсуждают эту тему для различных" col '(NOT NULL или нет, с индексом и т.д.), и это для таблиц MyISAM и InnoDB.
Ответ 2
Я знаю, что вопрос касается MySQL, но для чего он стоит, count (*) рекомендуется для Oracle: это показывает, что это специфичная для базы данных (см. комментарий выше от BalusC). Поскольку многие базы данных (MS-SQL, MySQL) имеют таблицы информационных схем, которые содержат различные типы метаданных, существуют определенные различия, если один синтаксис просто ищет легкодоступное значение, а другое идет прямо в таблицу, В конце дня: попробуйте разные варианты, посмотрите, что говорит EXPLAIN, происходит за кулисами.
Ответ 3
Count (*)
Count (ENAME)
Может отображать diff-выходы, поскольку Ename не является столбцом с
Непустое ограничение и, безусловно, имеет несколько нулевых значений
Которые не учитываются.