これはMySQLの答えです。
これらはまったく同じように機能します。MyISAMを使用している場合を除き、COUNT(*)
の特殊なケースです。 存在します。私はいつもCOUNT(*)
を使用します とにかく。
https://dev.mysql.com/doc /refman/5.6/en/aggregate-functions.html#function_count
###編集あなたの何人かはユーモアの暗い試みを逃したかもしれません。 MySQLがSQLServerとは異なることを行うような日のために、これを重複しない質問として保持することを好みます。それで私は質問を再開するために投票を投げました(明らかに間違った答えで)。
MyISAM
の場合 テーブル、COUNT(*)
SELECT
の場合、非常に迅速に返されるように最適化されています 1つのテーブルから取得し、他の列は取得せず、WHERE
はありません 句。例:mysql> SELECT COUNT(*) FROM student;
この最適化は、
MyISAM
にのみ適用されます このストレージエンジンには正確な行数が保存されており、非常に迅速にアクセスできるためです。COUNT(1)
最初の列がNOT NULL
として定義されている場合にのみ、同じ最適化の対象になります 。
上記のMyISAM最適化は、
にも同様に適用されます。COUNT(*)
COUNT(1)
COUNT(pk-column)
COUNT(any-non-nullable-column)
したがって、本当の答えは、それらが常にであるということです。 同じです。