最近の製品テストでは、同時呼び出し数が 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は赤い封筒の順序と量を指定するアルゴリズムを実装します
ktl ツールを使用して、mysql から mysql にデータを同期します。 1. 新しいジョブス...
textarea タグはよく使われる HTML タグです。主に長いテキストを入力するときに改行するた...
1. ダウンロード1. インストールパッケージをダウンロードするMySQL ダウンロード パス: h...
目次ERR 1067による殺人事件2番目の問題の原因はsql_modeです3. sql_modeを設...
WeChatコンポーネントの形式で提供されます。コンポーネント内部ではasync/awaitが使用さ...
Linuxバージョンのアップグレード: 1. まず、Linuxオペレーティングシステムに付属するPy...
Docker 公式ドキュメント: https://docs.docker.com/ Docker は...
1. サーバーを購入するこの例では、購入したサーバーはAlibaba Cloudです。大学生はAli...
RHEL8/CentOS8 に基づく一般的な nmcli コマンド # IP を表示する (ifco...
具体的なコードは次のとおりです。 <!DOCTYPE html> <html>...
目次1. 浅いコピー1. Object.assign(ターゲット、ソース、ソース...) 2. スプ...
環境: VMware VCSA 6.7 (VMware-VCSA-all-6.7.0-8169922...
Linux 操作実験環境: Centos7 仮想マシンまず、共通ユーザーgubeiqingを作成しま...
目次1. 日付2. 正規表現3. オリジナルパッケージタイプ序文:参照値(オブジェクト)は、 Dat...
目次1 Baota Software StoreにDockerをインストールする2 ゴグスイメージを...