-3

重複の可能性:
COUNT()vs。COUNT(1)vs. COUNT(pk):どちらが良いですか?
count(
)とcount(column_name)、diffは何ですか?
count(*)vs count(column-name)-どちらが正しいですか?

selectステートメントで使用する利点はcount(*)、任意のテーブルで使用できることと、スクリプトの自動化が容易になることです。

count_sql = 'select count(*) ' + getRestOfSQL('tablename');

しかし、それは使用するよりも効率が悪いのcount(specific_field)でしょうか?

4

2 に答える 2

2

InnoDBの場合

null許容でない場合specific_field、それらは同等であり、同じパフォーマンスを持ちます。

null許容型の場合specific_field、同じことは行いません。COUNT(specific_field)null以外の値を持つ行をカウントしますspecific_fieldspecific_fieldこれには、各行のの値を確認する必要があります。COUNT(*)単に行数を数えるだけで、この場合は。の値を調べる必要がないため、より高速になりますspecific_field

MyISAMの場合

すべての行をフェッチする必要がないように、次の特別な最適化があります。

SELECT COUNT(*) FROM yourtable
于 2012-08-17T19:55:02.700 に答える
1

通常、同じ数の行を返すので、それほど重要ではありません。

このリンクはそれをうまくカバーしています

このリンクでは、特にOracleについても詳しく説明しています。

于 2012-08-17T19:55:26.817 に答える