MySqlを最適化するためにnot inを使用する方法

MySqlを最適化するためにnot inを使用する方法

最近、プロジェクトで選択クエリを使用する際に、未使用の主キー ID を除外するために not in を使用しました。当初使用した SQL は次のとおりでした。

選択 
  s.SORT_ID、
  s.SORT_NAME、
  s.SORT_STATUS、
  s.SORT_LOGO_URL、
  s.SORT_LOGO_URL_LIGHT
SYS_SORT_PROMOTE から
  どこ
    s.SORT_NAME = '必聴クラシック'
    かつ、s.SORT_ID が ("SORTID001") にありません
  制限 1;

テーブルに大量のデータがある場合、この SQL の実行時間は長く、実行効率は低くなります。左結合を使用して最適化できるという情報をオンラインで見つけました。最適化された SQL は次のとおりです。

選択 
  s.SORT_ID、
  s.SORT_NAME、
  s.SORT_STATUS、
  s.SORT_LOGO_URL、
  s.SORT_LOGO_URL_LIGHT
SYS_SORT_PROMOTE から
左結合(SYS_SORT_PROMOTEからSORT_IDを選択、SORT_ID=#{sortId})b
s.SORT_ID = b.SORT_IDの場合
  どこ
    b.SORT_IDがNULLです
    AND s.SORT_NAME = '必聴クラシック'
  制限 1;

上記の SORT_ID=#{sortId} では、sortId は SORT_ID フィールドで除外する必要がある ID 値を渡します。左外部結合を実行する場合、フィルターするフィールド (SORT_ID) が結合条件として使用されます。最後に、where 条件に b.SORT_ID IS NULL を追加して、テーブル内の関連データをフィルターします。

最適化のプロセスを記録するには、ここにエッセイを書き留めてください。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • MYSQL IN と EXISTS の最適化の例
  • MySQL の not in と minus の最適化
  • MySQL における or、in、union、インデックス最適化の詳細な分析
  • サブクエリ最適化における MySQL 選択の実装
  • MySQL での IN データボリュームの使用の最適化された記録

<<:  VueRouterルーティングの詳細な説明

>>:  Ubuntu 20.04 に Python 3 仮想環境をインストールする詳細なチュートリアル

推薦する

Vue要素のバックグラウンド認証プロセスの分析

序文:最近、プロジェクトで管理システムに遭遇しました。権限設定が非常に興味深いと思いました。自分の学...

MySQL 全文あいまい検索 MATCH AGAINST メソッドの例

MySQL 4.x 以降では、全文検索 MATCH ... AGAINST モード (大文字と小文字...

Nginx リバース プロキシでセッション永続性を実装する 2 つの方法の詳細な説明

1. ip_hash: ip_hash は、送信元アドレス ハッシュ アルゴリズムを使用して、サーバ...

VMware ESXi サーバー仮想化クラスター

目次まとめ環境とツールの準備サーバー仮想化のインストール VMware ESXi仮想マシンのオペレー...

MySQL で lower_case_table_names を記録する際の落とし穴の詳細な説明

1 原因プロジェクトがデータベースを移行して再起動した後、「T_AAAテーブルが存在しません」という...

Angularデータバインディングとその実装の詳細な説明

目次序文データバインディングとは何ですか? Angular のデータバインディングの種類一方向データ...

JavaScript カウントダウン プロンプト ボックス

この記事の例では、カウントダウンプロンプトボックスを実装するためのJavaScriptの具体的なコー...

Linux コマンドを素早く習得する 4 つの方法

Linux マスターになりたいなら、いくつかの Linux コマンドを習得することが不可欠です。 L...

JavaScript と JQuery フレームワークの基本チュートリアル

目次1. JS オブジェクトDOM –1、機能–2、テスト3. jQuery –1. 概要–2、使用...

MySQLの水平および垂直テーブルパーティションの説明

前回の記事で、MySQL ステートメントの最適化には限界があると述べました。MySQL ステートメン...

Vueタイムラインコンポーネントの使い方

この記事の例では、参考までにvueタイムラインコンポーネントの具体的な実装コードを共有しています。具...

Docker の Windows ストレージ パス設定操作

Windows 10 に Docker をインストールする場合、コンテナタイプを Linux コンテ...

MySQL アカウント情報をエレガントにバックアップする方法

序文:最近、インスタンスの移行の問題に遭遇しました。データの移行後、データベースのユーザーと権限も移...

Dockerコンテナとホスト間のデータ相互作用の概要

序文実稼働環境で Docker を使用する場合、多くの場合、データを複数のコンテナ間で永続化または共...

Vue のグローバル ウォーターマーク実装例

目次1. 透かしのJsファイルを作成する2. 導入操作2.1 App.vueや他のページでの参照2....