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 仮想環境をインストールする詳細なチュートリアル

推薦する

MySqlはページクエリ機能を実装します

まず、ページ分割クエリを使用する理由を明確にする必要があります。データが膨大なため、すべてのデータを...

CSS3 で less のテキストの長い影を実装する

この記事では主に、CSS3 LESS で長いテキストの影を実装する方法を紹介し、皆さんと共有します。...

MySql インデックス使用戦略の分析

MySql インデックスインデックスの利点1. 一意のインデックスまたは主キー インデックスを作成す...

表には表示したい境界コードが表示されます

テーブルの共通プロパティ基本的な属性は、width (幅)、height (高さ)、border (...

jQueryはシンプルなカルーセル効果を実装します

みなさんこんにちは。今日はカルーセルの実装についてお話しします。私が作成したカルーセルの効果は次のと...

Vite2.x に基づく Vue 3.x プロジェクトの実装

Vue 3.x プロジェクトの作成 npm init @vitejs/app my-vue-app ...

JavaScript による省・市連携効果の実現

この記事では、省と都市間の連携効果を実現するためのJavaScriptの具体的なコードを参考までに共...

1分でVueが右クリックメニューを実装

目次レンダリングインストールコードの実装カスタムスタイル要約する効率的に要件を満たし、車輪の再発明を...

IDEA2021 tomcat10 サーブレットの新しいバージョンの落とし穴

私が学習していたときに使用していたバージョンは比較的新しいものであり、インターネット上のチュートリア...

TypeScript ジェネリックを簡単に説明する方法

目次概要ジェネリック医薬品とはビルドシステムジェネリック医薬品の一般的な理解ジェネリッククラスジェネ...

MySQLデータベースでコマンドを自動補完する3つの方法

注意: 3 番目の方法は XSell でのみ使用され、finalsell では使用できません。方法1...

CSS3は、Transformを使用して動く2D時計を作成します。

これでtransformコースは終了です。例を見てみましょう。transform transform...

vue で wangEditor を使用する方法と、データをエコーし​​てフォーカスを取得する方法

バックグラウンド管理プロジェクトを行う際には、リッチテキストエディタがよく使用されます。ここでは、非...

PHPのmail()関数を使用してメールを送信する

PHPのメール関数を使用してメールを送信するmail()関数はメールサーバーに接続し、サーバーと対話...

ネイティブJavaScriptカルーセル実装方法

この記事では、JavaScriptカルーセルの実装方法を参考までに紹介します。具体的な内容は次のとお...