最近の製品テストでは、同時呼び出し数が 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は赤い封筒の順序と量を指定するアルゴリズムを実装します
MySQL のバージョン番号は 5.7.28 です。テーブル A には 390 万件のレコードがあり...
序文:ルートでは、主要部分は同じでも、基礎となる構造が異なることがあります。たとえば、ホームページに...
HTML を学習したり使用したりしたことがある人なら、<a> タグについてよく知っている...
上の記事で、SWFObject V1.5 の使い方の紹介は一旦終了です。これから、SWFObject...
ダウンロードダウンロードアドレス: https://dev.mysql.com/downloads/...
META タグは、一般的に タグと呼ばれ、HTML Web ページのソース コード内の重要な HTM...
ご存知のとおり、私たちが毎日閲覧する Web ページ、Web サイト、または Web ページには独自...
1. MySQL での or 構文の使用、および MySQL 構文で or を使用する際の注意点。 ...
目次1. $(".box1").click() メソッドを実装する2. $(&q...
定義と使用方法:コンポーネントのテンプレートでスロットタグの定義を使用します。デフォルトの表示値は、...
序文これまでの Tomcat シリーズの記事を通じて、私のブログを読んでいる学生は Tomcat に...
Anaconda は、大規模なデータ処理、予測分析、科学計算のための最も人気のある Python デ...
この記事では、Vueを使用して特定の領域に透かしを描く方法を紹介します。具体的な内容は次のとおりです...
目次1 データベース インデックスを作成するための一般的なルールは次のとおりです。 2. 数千万件の...
背景: parseInt(0.006) または parseInt(0.0006) は 0 という値を...