sql row count optimization [duplicate]を取得する
-
28-10-2019 - |
質問
電子メールの内容やニュースなど、長いテキストを保持する大きなテーブルがあります。そして、私の質問は、テーブルの行をカウントするためのパフォーマンスに違いがあることです。
SELECT COUNT(*) FROM table_name
SELECT COUNT(t.id) FROM table_name as t
どちらの方がよいですか?または、後者はクエリオプティマイザーによって最適化されますか?これに関するドキュメントはありますか?
解決
それらは違う。
COUNT(*)
すべての値を取得します( NULL
値カウント)。COUNT(t.id)
カウントしません NULL
値。
パフォーマンスに関しては、それらは同じです(クエリオプティマイザーはスマートです)。
他のヒント
クエリプランは同じように見えますが、テストでは、 *を使用すると(わずかに)より速くなります。
ただし、列名を指定すると、ヌルは考慮されていません。
所属していません StackOverflow