SQLでINDEXを使ってクエリパフォーマンスを向上させる方法

この記事では、SQLにおけるINDEXを使ったクエリパフォーマンスの向上について解説します。具体的なコード例とその解説、データテーブルを用いた演習問題とその回答も含めています。

目次

INDEXとは

INDEXとは、データベースにおいてデータの検索速度を向上させるためのオブジェクトです。インデックスは、テーブルの特定の列に対して作成され、その列の値に応じて整列されたポインタのような役割を果たします。

INDEXの種類

一般的には次のようなINDEXの種類があります。

  • 単一列インデックス(Single-Column Index)
  • 複数列インデックス(Composite Index)
  • ユニークインデックス(Unique Index)
  • フルテキストインデックス(Full-text Index)

INDEXの作成

INDEXの作成は簡単で、以下のようなSQLコマンドを使用します。

CREATE INDEX index_name ON table_name(column_name);

INDEXを用いたクエリ最適化

基本的な例

例えば、次のようなemployeesテーブルがあるとします。

idnamesalary
1Alice50000
2Bob60000
3Carol70000
employeesテーブル

このテーブルでsalaryが60000以上のデータを取得する場合、以下のようなSQLコマンドを実行できます。

SELECT * FROM employees WHERE salary >= 60000;

しかし、このクエリはINDEXが設定されていない場合、全ての行をスキャンする必要があります。この時、salary列にINDEXを設定すると、データベースは効率的にデータを取得できます。

INDEX作成とクエリのパフォーマンス

salary列にINDEXを作成するには、次のようにします。

CREATE INDEX idx_salary ON employees(salary);

このINDEXを使うと、上述のSELECTクエリは高速になります。

演習問題とその回答

問題1

次のSQLコマンドがどのような動作をするのか説明してください。

CREATE INDEX idx_name_salary ON employees(name, salary);

回答1

このSQLコマンドは、employeesテーブルのname列とsalary列に対して複数列インデックス(Composite Index)を作成します。これにより、nameとsalaryを組み合わせた検索が高速になります。

まとめ

INDEXはSQLにおいて、クエリのパフォーマンスを劇的に向上させる重要な機能です。INDEXの作成や選定には慎重な検討が必要ですが、適切に設定することで多くの利点があります。この知識を活かして、より効率的なデータベース操作を目指しましょう。

コメント

コメントする

目次