本文へスキップ

クエリプランナーとは?

くえりぷらんなー

クエリランナーとは、データベースがSQL文を最も効率よく実行するための実行計画を自動的に選択する仕組みです。

クエリランナー(Query Planner)とは、リレーショナルデータベース管理システム(RDBMS)において、受け取ったSQL文をどのような手順で実行するかを決定するコンポーネントです。同じ結果を得るための実行手順は複数存在することが多く、その中から最もコストの低い方法を選ぶ役割を担います。

クエリプランナーは主に以下の手順で動作します。

  • SQL文を解析して構文木を生成する
  • 統計情報(テーブルの行数・カラムの分布など)を参照する
  • インデックスの利用可否や結合順序など複数の実行計画を候補として列挙する
  • 各候補のコストを見積もり、最もコストの低い計画を選択する

PostgreSQLではEXPLAINコマンド、MySQLではEXPLAINまたはEXPLAIN ANALYZEを使うことで、実際に選ばれた実行計画を確認できます。統計情報が古いと誤った計画が選ばれることがあるため、定期的なANALYZEや統計情報の更新が重要です。

クエリプランナーの性能を引き出すには、適切なインデックス設計、統計情報の鮮度維持、そして複雑なクエリをプランナーが解析しやすい形に書くことが効果的です。アプリケーションの応答速度改善において、実行計画の理解はデータベースチューニングの基礎となります。

使い方・例文

大量データが入ったテーブルに対してSELECT文が遅い場合、EXPLAIN ANALYZEコマンドでクエリプランナーが選んだ実行計画を確認し、シーケンシャルスキャンになっていればインデックスを追加して高速化を図ります。

この用語をシェア

𝕏 でポスト LINE

最終更新:

関連用語