最近の製品テストでは、同時呼び出し数が 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のウェブサイトを応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: bash スクリプトで ssh/scp コマンドにパスワードを渡す方法の詳細な説明
>>: jsは赤い封筒の順序と量を指定するアルゴリズムを実装します
JavaScript は多くの素晴らしい機能を備えています。この記事では、作業効率の向上とコードのデ...
ブロック要素HTMLタグ分類の詳細* 住所 - 住所* blockquote - ブロック引用* c...
1. デザインの方向性を明確にする<br />まず、どのユーザーを対象にデザインするのか...
CSS インポート方法 - インラインスタイルタグ属性を通じて、CSSのキーと値のペアがタグに直接書...
1. MySQLデータベースにログインするmysql -u ルート -pユーザーテーブルを表示する ...
目次背景問題の場所さらなる分析要約する背景私のコース「Vue 3 エンタープライズレベルの音楽アプリ...
目次序文エラー境界エラー境界を超えてトライ/キャッチwindow.onerror、エラーイベント未処...
目次はじめにNginx Dockerファイル新しい会議もっと参考文献はじめに最近、アプリケーションの...
この記事では、Docker を使用して Centos6 に Kafka プロジェクトをデプロイする方...
3つの仮想マシン132、133、134を群がらせる1. クラスターを初期化し、自分自身をクラスターに...
目次1. 概要2. メモリ管理3. ガベージコレクション4. GCアルゴリズムの紹介5. 参照カウン...
目次序文指導の基本フック機能フック関数のパラメータ文章使い方とアイデア成し遂げる汎用性を高める要約す...
目次1. 基本的な使い方2. 指示の動作原理2.1. 初期化2.2 テンプレートのコンパイル2.3....
背景Dockerでは、同じイメージを使用して4つのコンテナを作成します。ネットワークはブリッジモード...
MySQLのインストール、設定、最適化は参考用です。具体的な内容は次のとおりです。 MySQL ダウ...