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

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

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

推薦する

JS ES 新機能テンプレート文字列

目次1. テンプレート文字列とは何ですか? 2. 複数行のテンプレート文字列2.1 式付きテンプレー...

Docker で MySQL をデプロイする詳細なプロセス (Docker でデプロイされる一般的なアプリケーション)

以前にも紹介しました: docker (一般的なアプリケーションのデプロイ): docker dep...

.NETCore Dockerはコンテナ化とプライベートイメージリポジトリ管理を実装します

1. Dockerの紹介Docker は Linux オペレーティングシステムの一部の機能をベースに...

仮想スクロールを簡単に実装するためのVueサンプルコード

目次序文ローリング原理成し遂げるソースコード参照する序文モバイル Web ページの日常的な開発では、...

階段を転がす特殊効果を実現する JavaScript (jQuery 実装)

皆さんもJDを使ったことがあると思います。ホームページには非常によく見られる機能があります。階段の特...

Tomcat のセッションと Cookie の詳細な説明

序文HTTP はステートレスな通信プロトコルです。各リクエストは互いに独立しており、サーバーは以前の...

line-height=height要素の高さだがテキストが垂直方向に中央揃えされない問題を解決する

まず、行の高さが要素の高さと等しい場合にテキストが垂直方向に中央揃えにならない理由を説明します。実際...

MySQLの行ロックとテーブルロックの意味と違いの詳細な説明

1. はじめに行ロックとテーブルロックの違いは面接で頻繁に出てくるはずです。MySQL のロックにつ...

jsは赤い封筒の順序と量を指定するアルゴリズムを実装します

この記事では、指定された赤い封筒の順序と金額を実装するためのjsの具体的なコードを共有します。具体的...

Docker で Maven プロジェクトをより速くビルドする

目次I. 概要2. 従来の多段階イメージ構築3. Buildkitを使用してイメージをビルドする4....

Docker コンテナのログを表示およびクリーンアップする方法 (テスト済みで効果的)

1. 問題Docker コンテナのログにより、ホストのディスク領域がいっぱいになりました。 doc...

Vue2.0の双方向データバインディング原則を手動で実装する

一言で言えば: データハイジャック (Object.defineProperty) + パブリッシュ...

JavaScript初心者がよく犯す間違い

目次序文undefined と null の混同紛らわしい数値の加算と文字列の連結戻り文の改行の問題...

Linux ディスクのシーケンシャル書き込みとランダム書き込みの方法

1. はじめに● ランダム書き込みではヘッドがトラックを頻繁に変更するため、効率が大幅に低下します。...

Vueはローカルストレージの追加、削除、変更機能を実装します

この記事では、ローカルストレージの追加、削除、変更を実装するためのVueの具体的なコードを例として紹...