ホームページ >データベース >mysql チュートリアル >MySQL Count関数の使い方の違いまとめ
みなさん、MySQL の Count についてどのくらい知っていますか?
統計データの需要は非常に簡単に得られます。さて、MySQL ではさまざまな計算関数もサポートされていますが、
次に、それらの違いと落とし穴があるかどうかを見てみましょう。 [推奨される学習: MySQL ビデオ チュートリアル ]
count の意味: count() は集計関数です。返された結果セットは行ごとに判定されます。count 関数のパラメータが NULL でない場合、累積値は 1 ずつ増加します。NULL でない場合、累積値は 1 ずつ増加します。追加されません。最後に、累積値が返されます。
count (field) は特別で、条件を満たすデータ行の総数を返すことを意味し、パラメータ「field」は NULL ではありません
サーバー層に必要なものを何でも与えます;
#効率的な並べ替えcount(字段)<count(主键 id)<count(1)≈count(*)
##count(*) が最も速いのはなぜですか? オプティマイザはその仕事を実行し、走査する最小の数値を見つけます。
InnoDB はインデックス構成テーブルであり、主キー インデックス ツリーのリーフ ノードはデータですが、通常のインデックス ツリーのリーフ ノードは主キー値です。したがって、通常のインデックス ツリーは主キー インデックス ツリーよりもはるかに小さくなります。 count(*) などの操作の場合、どのインデックス ツリーを走査しても得られる結果は論理的に同じです。したがって、MySQL オプティマイザは、走査する最小のツリーを見つけます。ロジックが正しいことを前提として、スキャンされるデータの量を最小限に抑えることは、データベース システム設計の一般的なルールの 1 つです。// 数据中存在null值数据 select count(*) from audit_log a; 结果:1 select count(id) from audit_log a; 结果:0count の結果が矛盾していることがわかります。レコード数は 1 であるはずですが、count( id) is not. Equal to 0これは、count (field) がカウントされず、フィールド値が null であるためですしたがって、フィールドが空でないフィールドの場合は、次のようにする必要があります。この問題を解決するには count(*) を使用してください。 MyISAM テーブル count(*) は高速ですが、トランザクションをサポートしていません;
以上がMySQL Count関数の使い方の違いまとめの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。