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は検証コードと検証のランダム生成を実装します

推薦する

要素動的ルーティングブレッドクラムの実装例

マスターするには: localStorage、コンポーネントのカプセル化えーと、GIF に変換したビ...

Linux でメモリ使用量を確認する方法

システムの問題、アプリケーションの速度低下、または原因不明の問題をトラブルシューティングする場合、最...

タグ li はブロックレベル要素ですか?

なぜ高さを設定できるのでしょうか。<h1 /> などの要素とは異なり、「セミインライン」...

Dockerコンテナが停止できない問題の解決方法

解決策は次のとおりです。 1. コンテナを強制削除する docker rm -f ジェンキンス2. ...

MySQL 入門 - 概念

1. それは何ですか? MySQL は最も人気のあるリレーショナル データベース管理システムです。W...

ローカルで起動したときに Vue プロジェクトがクッキーを保持できない問題を解決する

vueプロジェクトをパッケージ化してサーバーにデプロイし、正常にログインできるが、ローカルで起動する...

DIVマスクを使用して、マウスでチェックボックスを直接チェックすることが無効である問題を解決します

フロントエンドの開発過程で、チェックボックスが必要な状況が発生しました。ユーザー操作の利便性を考慮し...

JavaScript クラス配列の詳細な理解

js 配列はどこでも使用されているため、おそらく誰もがよく知っているでしょうが、配列クラス (疑似配...

ウェブサイトのカラースキーム ウェブサイトに適した色の選択

色はウェブサイト訪問者に影響を与えますか?数年前までは、ウェブサイトはまだ贅沢品でしたが、今ではほと...

mysql5.7.17.msi インストール グラフィック チュートリアル

mysql-5.7.17.msiのインストール、スクリーンショットに従ってください、ステップバイステ...

MySQLデータベースのマスタースレーブ同期の実際のプロセスの詳細な説明

目次インストール環境の説明MySQLデータベースサービスをインストールするメインライブラリを構成する...

純粋なCSSでは、子要素が親要素の幅制限を突破できる。

文章のスタイルでは、このような状況がよく見られます コードは次のとおりです <div styl...

Nginx http ヘルスチェック構成プロセス分析

パッシブチェックパッシブ ヘルス チェックでは、NGINX と NGINX Plus はイベントの発...

マウスを動かしたときに画像のズーム効果とゆっくりとした遷移​​効果を実現するCSSのサンプルコード

transform:scale()比例したズームインまたはズームアウトを実現できます。 transi...

Ubuntu 20.04 ファイアウォール設定の簡単なチュートリアル (初心者)

序文ますます便利になった今日のインターネット社会では、さまざまなインターネット ランサムウェア ウイ...