データベースクエリの最適化: サブクエリの最適化

データベースクエリの最適化: サブクエリの最適化

1. 事例

会社のトップ以外の従業員全員を年齢別にグループ化します。

t_emp で id が存在しない場合に、年齢を「年齢」として選択し、count(*) を「人数」として選択します。 
(ceo が null でない t_dept から ceo を選択) 年齢でグループ化します。 

最適化するにはどうすればいいですか?

①deptテーブルのフルテーブルスキャンを解決し、ceoフィールドのインデックスを作成します。

この時点で、再度クエリを実行します。

② さらに最適化し、置き換えない。

上記の SQL は次のように置き換えることができます。

select age as '年齢',count(*) as '人数' from emp e left join dept d on e.id=d.ceo where d.id is null group by age; 

結論: 範囲を判断するときは、not in や not exists を使用せず、代わりに xxx is null の左結合を使用してください。

要約する

以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。これについてもっと知りたい場合は、次のリンクをご覧ください。

以下もご興味があるかもしれません:
  • MySQLデータベースクエリの最適化MySQLの効率
  • 大規模データベースのクエリ最適化とページングアルゴリズム
  • データベースクエリの最適化(マスタースレーブテーブル設計)
  • MySQLデータベースでのクエリステートメントの最適化の詳細な説明
  • 大規模データベース向けのクエリ最適化およびページング アルゴリズムのコレクション 1/2
  • 大規模データベース向けのクエリ最適化およびページング アルゴリズムのコレクション 2/2
  • データベースクエリタイムアウト最適化問題の実践記録

<<:  ファイアウォールの iptables 戦略を使用して Linux サーバー上のポートを転送する方法

>>:  ReactでuseStateを使用する詳細な例

推薦する

html ページ!--[IE の場合]...![endif]--使用方法の詳細な紹介

コードをコピーコードは次のとおりです。 <!--[IEの場合]><script t...

Dockerを使用してGitlabを素早くデプロイする方法

1. GitLabイメージをダウンロードする docker pull gitlab/gitlab-c...

Tomcatアーキテクチャの原則をアーキテクチャ設計に分析する

目次1. 学習目標1.1. Tomcatアーキテクチャの設計と原則をマスターして社内スキルを向上させ...

MySql Installer 8.0.18 画像とテキストによるビジュアル インストール チュートリアル

目次1. MySQL 8.0.18のインストール2. 環境変数を設定する3. 接続テスト1. MyS...

JavaScript セレクター関数 querySelector および querySelectorAll

目次1. querySelectorは単一の要素を照会する1. ドキュメントインスタンスの呼び出し2...

Vite+ElectronでVUE3デスクトップアプリケーションを素早く構築

目次1. はじめに2. Viteプロジェクトを作成する1. viteをインストールする2. プロジェ...

MySQL 5.7.18 のインストール中に MySQL サービスの起動に失敗する問題の解決策

MySQL は非常に強力なリレーショナル データベースです。しかし、初心者の中には、インストールや設...

MySQLトリガーの使用

トリガーにより、ステートメントの実行前または実行後に他の SQL コードを実行できます。トリガーは、...

nginx を https をサポートするように設定するためのサンプル コード

1. はじめにあなたのウェブサイトはまだインターネット上に公開されたままですか?ここでは、HTTPS...

MySQL 5.7 でパスワードを忘れた場合の解決方法の詳細な説明

環境: [root@centos7 ~]# uname -r 3.10.0-514.el7.x86_...

Js における new 演算子の役割の詳細な説明

序文Js は現在最も一般的に使用されているコード操作言語であり、その中でも new 演算子は特によく...

Mysql テーブルで利用可能な最小 ID 値を照会する方法

今日、研究室のプロジェクトを見ていたとき、私にとって「難しい」問題に遭遇しました。実は、それは私があ...

Node.js http モジュールの使用

目次序文ウェブHTTP サーバーファイルサーバー練習する序文Node.js 開発の目的は、JavaS...

react+antdプロジェクトをゼロから構築する方法を教えます

これまでの記事はすべて私自身の学習記録であり、主に以前に遭遇した落とし穴を忘れないようにするためのも...

インターフェーステストプラットフォームを構築するためのDjango+Vue+Dockerの詳細な説明

1. 冒頭の2つの単語みなさんこんにちは。私の名前はLin Zonglinです。私はテストエンジニア...