質問

可能な複製:
SQLでは、カウント(列)とカウントの違いは何ですか()?
カウント(
)vsカウント(1)

電子メールの内容やニュースなど、長いテキストを保持する大きなテーブルがあります。そして、私の質問は、テーブルの行をカウントするためのパフォーマンスに違いがあることです。

SELECT COUNT(*) FROM table_name

SELECT COUNT(t.id) FROM table_name as t

どちらの方がよいですか?または、後者はクエリオプティマイザーによって最適化されますか?これに関するドキュメントはありますか?

役に立ちましたか?

解決

それらは違う。

COUNT(*) すべての値を取得します( NULL 値カウント)。COUNT(t.id) カウントしません NULL 値。


パフォーマンスに関しては、それらは同じです(クエリオプティマイザーはスマートです)。

他のヒント

クエリプランは同じように見えますが、テストでは、 *を使用すると(わずかに)より速くなります。

ただし、列名を指定すると、ヌルは考慮されていません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top