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

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

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を使用する詳細な例

推薦する

Dockerコンテナ間の通信を実装する方法

シナリオ: laradock 開発環境 (php7.3+mysql5.7) がローカルに構築されてい...

JavaScript はクリックして画像の形状を変更する (変換アプリケーション) を実装します。

JavaScriptをクリックすると画像の形状が変わります(変形の応用)。参考までに具体的な内容は...

Nexus を使用して Docker リポジトリを作成する方法

公式の Docker レジストリを使用して作成されたウェアハウスでは、イメージを削除してもデフォルト...

検索ボックスと検索ボタンの境界線が重なり合わない問題を解決

今日、Baiduのページで練習していたところ、検索ボックスとボタンの余白とパディングの値が0に設定さ...

JavaScript でプロトタイプ パターンを実装する方法

概要プロトタイプ パターンは、プロトタイプ インスタンスによって作成されるオブジェクトの型を指し、こ...

VMware Esxi のルート パスワードを忘れた後に正常に取得する方法

CentOS6 インストール ディスク (任意のバージョン) を準備するか、別の pnux インスト...

CSSはコーナーカット+ボーダー+投影+コンテンツ背景色のグラデーション効果を実現します

CSS を使用するだけで、コーナーカット + ボーダー + 投影 + コンテンツの背景色のグラデーシ...

LeetCode の SQL 実装 (178. スコアランキング)

[LeetCode] 178.ランクスコアスコアをランク付けする SQL クエリを記述します。2 ...

MySQL データ圧縮パフォーマンス比較の詳細

目次1. テスト環境1.1 ハードウェアとソフトウェア1.2 テーブル構造2. テストの目的2.1 ...

大規模なウェブサイトアーキテクチャを設計・構築する際に考慮すべき10の課題

ここでは、PHP、JSP、または .NET 環境については説明しません。アーキテクチャの観点から問題...

Dockerを使用してgitlabコミュニティの中国語版を構築する詳細なプロセスを教えます

1. Docker Composeを使用して起動を構成するDocker Compose を知らない場...

React仮想リストの実装

目次1. 背景2. バーチャルリストとは何か3. 関連概念の紹介4. 仮想リストの実装4.1 ドライ...

H5ゲームをnginxサーバーにデプロイする方法の詳細な説明

自己学習型ゲーム開発の道において、最も充実した瞬間は、自分でミニゲームを作り、友達と共有して試しにプ...

Kali Linux Vmware 仮想マシンのインストール (図とテキスト)

準備: 1. VMwareワークステーションソフトウェアをインストールする2. Kali Linux...

Ubuntu環境でのPHP関連のパスと変更方法

Ubuntu環境におけるPHP関連パスPHP パス /usr/bin/php phpize5 /us...