COUNT(*) と COUNT(column_name): どの MySQL 関数をいつ使用する必要がありますか?

Barbara Streisand
リリース: 2024-11-24 09:33:17
オリジナル
155 人が閲覧しました

COUNT(*) vs. COUNT(column_name): When Should You Use Which MySQL Function?

COUNT(*) と COUNT(column_name) の違いを理解する

MySQL では、COUNT(*) と COUNT(column_name)関数はデータ集約において重要な役割を果たします。どちらも結果セット内の行数を返しますが、クエリの精度とパフォーマンスに影響を与える可能性のある微妙な違いがあります。

COUNT(*) と COUNT(column_name)

  • COUNT(*): この関数はすべてをカウントします特定の列に NULL 値が含まれているかどうかに関係なく、結果セット内の行。この関数の主な利点は、NULL 値をチェックする必要がないため、速度が向上することです。
  • COUNT(column_name): COUNT() とは異なり、この関数は、指定された列が null ではありません。 NULL 値を除外することで、COUNT(column_name) は空でない値のより正確な数を提供します。ただし、特定のシナリオでは、特に大規模なデータセットを扱う場合や null 値が存在する場合には、COUNT() よりも遅くなる可能性があります。

代替: COUNT(1)

COUNT(1) 関数は基本的に次と同じように動作します。 COUNT()。 1 が null になることはないため、結果セット内のすべての行をカウントします。結果として、COUNT(1) は COUNT() と同じパフォーマンス上の利点を提供します。

デモ

これらの関数の違いを説明するには、続く例:

CREATE TABLE table1 (x INT NULL);
INSERT INTO table1 (x) VALUES (1), (2), (NULL);

SELECT
    COUNT(*) AS a,
    COUNT(x) AS b,
    COUNT(1) AS c
FROM table1;
ログイン後にコピー

結果:

a   b   c
3   2   3
ログイン後にコピー

ご覧のとおり、COUNT() は null 値と null 以外の値の両方をカウントして 3 を返します。 。 COUNT(x) は、NULL 値を除いた 2 を返します。そして、COUNT(1) は、COUNT() のカウント 3 と一致します。

以上がCOUNT(*) と COUNT(column_name): どの MySQL 関数をいつ使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート