この記事では、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テーブルがあるとします。
id | name | salary |
---|---|---|
1 | Alice | 50000 |
2 | Bob | 60000 |
3 | Carol | 70000 |
このテーブルで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の作成や選定には慎重な検討が必要ですが、適切に設定することで多くの利点があります。この知識を活かして、より効率的なデータベース操作を目指しましょう。
created by Rinker
¥4,554
(2024/11/22 10:55:01時点 Amazon調べ-詳細)
コメント