最近の製品テストでは、同時呼び出し数が 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 ダーティページWAL メカニズムにより、InnoDB はステートメントを更新するときに、...
MyISAM ストレージエンジンMyISAM ストレージ エンジンは、書き込みよりも読み取りが多く、...
序文「High Performance MySQL」では、インデックスでは範囲フィールドの後の部分が...
<br /> この記事は allwebdesignresources.com から Ra...
以前にも同じような記事を書いたことがありますが、js スクリプトを使用しており、ファイルパスを表示で...
目次概要遅延読み込みとは何ですか?最適化を開始するビジネスモジュールを分割する遅延読み込みルート構成...
前回の記事では、docker サービスをインストールしました。引き続き、Web プロジェクトのデプロ...
<p><b>これは太字フォントです</b></p> ...
目次SaltstackがZabbixサービスを導入httpd、mysql、phpをインストールするh...
1. ワンストップソリューション1. 問題の分析と特定 # MySQL設定ファイルを見つけて、MyS...
表示するデータが多い場合、1 つのチャートに表示しても効果はよくありません。このとき、2 つのチャー...
この記事では、例を使用して、replace と regexp を使用して MySQL で正規表現を置...
フロントエンド開発を行っている初心者の学生を多く見かけますが、彼らの効率は比較的遅いです。常にコード...
こんなことがありました。今日はGitHubで遊んでいました。最初はログインせずにいくつかのページを閲...
この記事の例では、カレンダーウィジェットを実装するためのjsの具体的なコードを参考までに共有していま...