この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 15920|答える: 1

[出典] SQL文におけるcount(0)およびcount(*)の誤解

[リンクをコピー]
掲載地 2017/08/10 13:29:00 | | |
近年、数関数は多く使われており、数えるべき数が比較的大きい場合、count(*)はより時間がかかり、count(1)はより短時間で計算されることがわかっています。

いくつかの文書には以下の記述があります:

データテーブルに主キーがない場合は、count(*)より速いです。  
主キーが存在する場合、主キー(ジョイントプライマリキー)もcount(*)より速いです。  
テーブルにフィールドが1つだけなら、count(*)が最速です  
count(*) count(1) 両者を比較します。 主なのは(1)に対応するデータフィールドの数をカウントすることです。  
もしcount(1)がポリインデックスidなら、count(1)より速く対応する必要があります。 しかし、その違いは非常に小さいです。  
count(*)のため、フィールドは自動的に を指定するよう最適化されます。 つまり、カウント(?)を使う必要はなく、SQLが最適化を助けてくれます

  カウント詳細:
count(*) は、値がnullの行を含むテーブルに存在するすべての行の合計数を返します。しかし、count(列名)は、nullを除くテーブル内のすべての行の合計数を返します(デフォルト値の列もカウントされます。)
異なる列名の場合、結果はnull値と重複データを削除した後の結果となります


以前は、ブログで「全員がcount(0)を使うことを推奨されている」と書かれていて、クエリ効率が比較的高いと書かれていたことを知りませんでした

現在では、count(0)を使うことは誤解であることが判明しています!!
count(0) 統計の最初の列は空ではありません

count(*)の代わりにnumber(列名)やcount(constant)を使わないでください。

count(*) はSQL92で定義される標準的な行数の構文であり、データベースのNULLおよび非NULLとは関係ありません。

注:count(*)はNULL値の行をカウントしますが、count(column name)はNULL値の行をカウントしません。

したがって、今後すべての統計を行い空データを排除しない場合は、正直にcount(*)を使う方が良いです!!








先の:jsにおけるletとvar定義変数の違い
次に:jqueryは最大10個のデータを表示するテーブルを実装しています
掲載地 2017/08/10 13:54:00 |
教えられた                 
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com