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

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

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

この記事では、ネイティブ JS で実装されたデジタル時計エフェクトを紹介します。エフェクトは次のとお...

ウェブページのCSSの優先順位について詳しく説明します

CSS の優先順位について話す前に、CSS とは何か、CSS が何に使用されるのかを理解する必要があ...

MySQL 8.0.12 のインストールと使用方法のチュートリアル

MySQL 8.0.12のインストールと使用のチュートリアルを録画しました。ウィンドウズまず、公式ウ...

良いと思う国内のデザインサイトをいくつか選んでみました。

<br />私が良いと思った国内のデザインサイトをまとめてみました。広告ではありません!...

MySQL データベース クエリ パフォーマンス最適化戦略

クエリを最適化するExplain ステートメントを使用してクエリ ステートメントを分析するExpla...

ネイティブJSが様々なスポーツの均一な動きを実現

この記事では、ネイティブ JS で実装された均一なモーションを紹介します。その効果は次のとおりです。...

Linux の一般的な基本コマンドと使用方法

この記事では、一般的な基本的な Linux コマンドとその使用方法を例を使って説明します。ご参考まで...

HTML テーブルタグチュートリアル (21): 行の境界線の色属性 BORDERCOLOR

テーブルを美しくするために、行ごとに異なる境界線の色を設定できます。基本的な構文<TR 境界線...

Docker で Tomcat、MySQL、Redis をインストールするための詳細な手順

目次DockerでTomcatをインストールするtomcatイメージを使用してコンテナを作成する(イ...

CSS属性のデフォルト値width: autoとwidth: 100%の違いの詳細な説明

幅: 自動子要素(コンテンツ+パディング+境界線+余白を含む)は、親要素のコンテンツ領域全体を埋めま...

Linux (CentOS7) で RPM を使用して MySQL 8.0.11 をインストールするチュートリアル

目次1. インストールの準備1. Linux関連情報の表示(Linuxコマンドライン操作) 2. M...

Vue ページをリフレッシュするために provide と injection を適用する

目次方法1: 関数を直接呼び出す方法2: provide / inject (静的更新) を使用する...

MySQL 8.0.18 インストール構成の最適化チュートリアル

MySQLのインストール、設定、最適化は参考用です。具体的な内容は次のとおりです。 MySQL ダウ...

VUE 3 テレポート コンポーネントと使用構文をすぐに使い始める

目次1. テレポートの紹介1.1. 複数のテレポートを使用する2. テレポートを使用する理由3. テ...

無効な Nginx クロスドメイン設定 Access-Control-Allow-Origin の解決策

nginx バージョン 1.11.3次の構成を使用すると、検証は無効になり、クロスドメインの問題が依...