MySQL カウントを向上させる方法のまとめ

MySQL カウントを向上させる方法のまとめ

多くのプログラマーは MySQL に精通していると思います。多くの人が count の使い方と、最適なクエリ結果を取得する方法に苦労しています。今日は参考までに私の意見をいくつかお話ししたいと思います。

1. まずテーブルを作成し、後続のテスト手順を容易にするためのテストデータを準備しましょう

InnoDBエンジンテーブルを例に挙げる

テーブル作成ステートメントは次のとおりです。

テーブル test.test を作成します。

(

    VARCHAR(50) NOT NULLコメント 'ddfdf'、

    b VARCHAR(15) NOT NULLコメント 'fds',

    c VARCHAR(20) NOT NULL コメント 'asda',

    d VARCHAR(8) NOT NULL COMMENT 'ads',

    e longblob NOT NULL COMMENT 'asda'、

    f VARCHAR(2000) COMMENT 'ads'、

    g VARCHAR(8) NOT NULL コメント 'assd',

    h 日付 NULLでないコメント 'adsad',

    z VARCHAR(10) NOT NULL コメント 'adsd'

)

エンジン=InnoDB デフォルト文字セット=utf8;

2. MySQLにログインしてデータベースを変更する

以下に示すようにテーブル作成ステートメントを実行します。

3. 次に、テストデータを準備し、下の図に示すように、データがあるかどうかを確認します。

4. 次にテストを開始します

where条件がない場合

count(*) は count(field) よりも速いと考える人もいれば、count(field) は count(*) よりも速いと考える人もいます。

では、どちらが速いでしょうか? 試してみましょう。下の写真をご覧ください。

図の結果によると、count(field) の方が明らかに高速です。

5. where 条件がある場合はどうなるでしょうか? count(*) と count(field) のどちらが速いでしょうか?

実行効果は下の図をご覧ください

count(*) は高速ですが、データ サイズが小さすぎて明らかな結果が表示されない可能性があります。

6. もちろん、実行計画を表示して分析することもできます

次の図に示すように、実行されるSQLの前にdescまたはexplainを追加するだけです。

最後にまとめると、 1. where条件がない場合はcount(field)が推奨される 2. where条件がある場合はcount(*)が推奨される 最後にまとめると、 1. where条件がない場合はcount(field)が推奨される 2. where条件がある場合はcount(*)が推奨される

以下もご興味があるかもしれません:
  • 大規模な MySQL テーブルに対する count() の実装を最適化しました
  • MySQL の集計関数 count の使用法とパフォーマンスの最適化テクニック
  • MySQL の InnoDB におけるカウント最適化の問題の共有
  • MySQLのCOUNT(*)のパフォーマンスについてお話しましょう
  • MySQL の count 関数の正しい使い方の詳細な説明
  • MySQLの行数カウントに関する簡単な説明
  • MySQL でのフィルター条件なしのカウントの詳細な説明
  • MySQL における count(*)、count(1)、count(col) の違いのまとめ
  • 複数のテーブルでの MySQL カウント データ例の詳細な説明
  • MySQL COUNT関数の使用と最適化

<<:  電子署名を実装するWeChatミニプログラム

>>:  JavaScriptは検証コードと検証のランダム生成を実装します

推薦する

HTML DOM入門_PowerNode Javaアカデミー

DOMとは何ですか? JavaScript を使用すると、HTML ドキュメント全体を再構築できます...

MySql の集計関数に条件式を追加する方法

MySQL のフィルタリングのタイミングは、集計関数で使用される where 条件と having ...

アリババの中秋節ロゴとウェブサイトのデザインプロセス

<br />まずアイデアを考え、次にスケッチを描き、次にマウスでスケッチし、最後にフラッ...

Linuxのファイル権限の詳細な紹介

Linux の優れた点は、マルチユーザー、マルチタスク システムにあります。 Linux では通常、...

MySQL 5.7.20 圧縮版のダウンロードとインストールの簡単なチュートリアル

1. ダウンロードアドレス:参考: http://dev.mysql.com/downloads/m...

Vue は Tencent TIM インスタント メッセージングを統合します

この記事では主に、Tencent TIM インスタント メッセージングを Vue と統合する方法を紹...

jsはウォーターフォールフローのボトムアウトによるデータの動的ロードを実現します

この記事では、ウォーターフォールフローが底に達したときにデータを動的にロードするためのjsの具体的な...

CSS3 で Taobao に空白スペースを実装する方法

Taobao用の空白スペースを作成します。 ブラウザページを縮小すると、コンテンツ領域は縮小されませ...

Linux 上の MySQL 5.7 でパスワードを忘れる問題を解決する

1. 問題Linux 上の mysql5.7 のパスワードを忘れました2. 解決策• ステップ 1:...

MySQLにインデックスを追加しても効果がないいくつかの状況について簡単に説明します。

インデックスを追加すると、クエリの効率が向上します。インデックスを追加するということは、ドキュメント...

SQL における distinct と row_number() over() の違いと使い方

1 はじめにデータベース内のデータを操作するための SQL 文を記述するときに、いくつかの不快な問題...

CSS 動的高さ遷移アニメーション効果の実装

この質問は、Nuggets のメッセージから生まれました。友人が、次のコードの高さ遷移アニメーション...

MySQL 8.0.18 インストール構成の最適化チュートリアル

MySQLのインストール、設定、最適化は参考用です。具体的な内容は次のとおりです。 MySQL ダウ...

html2canvas を使用して HTML コードを画像に変換する方法

コードを画像に変換するにはhtml2canvas は、ブラウザから Web ページのスクリーンショッ...

Windows 10 で MySQL を完全に削除してアンインストールする方法

序文この記事では、Windows 10 システムで MySQL を完全に削除してアンインストールする...