MySQLのサブクエリユニオンの効率性についての簡単な説明と

MySQLのサブクエリユニオンの効率性についての簡単な説明と

最近の製品テストでは、同時呼び出し数が 10 未満の場合に応答時間が 100 ミリ秒以内に維持できないという問題が見つかりました。ただし、同時リクエスト数が 30 に達すると、応答時間は 1 秒を超えます。これは受け入れられません。要件は 1 秒間に 100 件の同時リクエストを実行することです。

テストの結果、時間は主にストレージ プロセスの 1 つで消費されていることがわかりました。ストアド プロシージャのステートメントを 1 つずつ確認しましたが、明らかな不合理は見つかりませんでした。 MySQL 自体はミリ秒レベルの時間を提供できないため、ミリ秒を提供できる MySQL 時間関数を Google で検索し、テストを行って位置付けを行いました。それは次のような文の 1 つであることがわかりました。

 A、B から .... を選択します。ただし、..... であり、A.id が (C から id を選択し、...);

in サブクエリ ステートメントでは、ごく少数の結果しか生成されません。この声明を説明することに問題はありません。単一テストでは問題ありません。しかし、同時リクエストの数が多いと問題が発生します。

変更を加えました:

 A、B から ... を選択します (C から ... を選択します (ただし ...)) S から .... を選択します。

もう一度テストしてみると、パフォーマンスが大幅に向上しました。同時実行数 50 と 10 の応答速度はほぼ同じです。

MySQL では、in の代わりにサブクエリ union を使用するように変更することを提案する場合があります。これまで実験されたことはありません。ようやく効率性が分かりました。もちろん、すべてを信じることはできません。それは依然として、あなた自身のアプリケーションに依存します。いくつかのテストと実験を行うのが最善でしょう。

要約する

以上が、MySQL サブクエリの union と IN の効率性に関するこの記事の内容のすべてです。皆様のお役に立てれば幸いです。

興味のある方は以下を参照してください:

いくつかの重要なMySQL変数

MySQL マスターライブラリ binlog (master-log) とスレーブライブラリ relay-log 間のコードの詳細な説明

MySQL データベース開発仕様 [推奨]

ご質問がございましたら、メッセージを残していただければ一緒にご相談させていただきます。友人の皆さんも123WORDPRESS.COMのウェブサイトを応援していただければ幸いです。

以下もご興味があるかもしれません:
  • MySQL マルチテーブルジョイントクエリ効率の詳細な分析と最適化
  • MySQLの結合クエリ、ユニオンクエリ、サブクエリの原理と使用例の詳細な説明
  • MySQL フルテキスト インデックス、ジョイント インデックス、Like クエリ、JSON クエリのうち、どれが高速ですか?
  • MySQL マルチテーブル共同クエリ操作例の分析
  • Mysql の 2 つのテーブル間の結合クエリの 4 つの状況の概要
  • いくつかのMySQLジョイントクエリの一般的な説明
  • MySQL ジョイントクエリ UNION と UNION ALL の使用法の紹介
  • MySQL のジョイント クエリで UNION と Order by を使用する際のエラー問題の解決方法
  • MySQLのマルチテーブルジョイントクエリはテーブル実装コードの内容を返します
  • MySQLの共同クエリ最適化メカニズムの詳細な説明

<<:  bash スクリプトで ssh/scp コマンドにパスワードを渡す方法の詳細な説明

>>:  jsは赤い封筒の順序と量を指定するアルゴリズムを実装します

推薦する

JavaScript の 50 以上のユーティリティ関数の概要

JavaScript は多くの素晴らしい機能を備えています。この記事では、作業効率の向上とコードのデ...

よく使われるHTMLタグのインライン要素とブロックレベル要素の詳細な説明

ブロック要素HTMLタグ分類の詳細* 住所 - 住所* blockquote - ブロック引用* c...

ウェブページエクスペリエンス: 計画と設計

1. デザインの方向性を明確にする<br />まず、どのユーザーを対象にデザインするのか...

CSS ファイルをインポートする 4 つの方法 (インライン、インライン、外部、インポート) の詳細な説明

CSS インポート方法 - インラインスタイルタグ属性を通じて、CSSのキーと値のペアがタグに直接書...

MySQLリモート接続権限の詳細な説明

1. MySQLデータベースにログインするmysql -u ルート -pユーザーテーブルを表示する ...

Vue3 トランジションアニメーションの落とし穴記録について

目次背景問題の場所さらなる分析要約する背景私のコース「Vue 3 エンタープライズレベルの音楽アプリ...

Reactで例外を適切にキャプチャする方法

目次序文エラー境界エラー境界を超えてトライ/キャッチwindow.onerror、エラーイベント未処...

Docker で nginx のログレベルを調整する方法

目次はじめにNginx Dockerファイル新しい会議もっと参考文献はじめに最近、アプリケーションの...

docker を使用して kafka プロジェクトをデプロイする Centos6 方法の分析

この記事では、Docker を使用して Centos6 に Kafka プロジェクトをデプロイする方...

Docker swarm の簡単なチュートリアル

3つの仮想マシン132、133、134を群がらせる1. クラスターを初期化し、自分自身をクラスターに...

この記事ではJavaScriptのガベージコレクションの仕組みを説明します

目次1. 概要2. メモリ管理3. ガベージコレクション4. GCアルゴリズムの紹介5. 参照カウン...

Vueエンジニアがカプセル化しなければならない埋め込み命令の知識のまとめ

目次序文指導の基本フック機能フック関数のパラメータ文章使い方とアイデア成し遂げる汎用性を高める要約す...

Vue命令の実装原理の分析

目次1. 基本的な使い方2. 指示の動作原理2.1. 初期化2.2 テンプレートのコンパイル2.3....

複数の Docker コンテナが同じポート番号を持たない場合の解決策

背景Dockerでは、同じイメージを使用して4つのコンテナを作成します。ネットワークはブリッジモード...

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

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