Подтвердить что ты не робот

COUNT (id) и COUNT (*) в MySQL

Есть ли разница между следующими запросами, если в таблице есть первичное поле "id" (как в скорости и т.д.)?

SELECT COUNT(id) 
  FROM table

против.

SELECT COUNT(*) 
  FROM table
4b9b3361

Ответ 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 не является столбцом с Непустое ограничение и, безусловно, имеет несколько нулевых значений Которые не учитываются.

Надеюсь, это поможет..!