RDBインデックスの仕組みを、動く図解で理解する。
B-tree、ハッシュ、クラスタ化、複合── 教科書で挫折しがちなインデックスの動きを、実際に触れる図解で直感的に理解できます。 新人エンジニアからIPAデータベーススペシャリスト対策まで。
トピック一覧
前提知識
インデックスの種類
- 基礎B-treeB-treeインデックス
最も広く使われるインデックス。木構造をたどることで探索コストを大幅に削減する。
- 基礎ハッシュハッシュインデックス
ハッシュ関数でバケットに振り分ける方式。等価検索は最速だが、範囲検索や並び替えはできない。
- 基礎クラスタ化クラスタ化インデックス
テーブルそのものがインデックスの順序で物理的に並ぶ方式。非クラスタ化との違いを比較する。
- 基礎複合複合インデックス
複数カラムをまとめたインデックス。カラムの順序が効きめを大きく左右する。
- 基礎ユニークユニークインデックス
重複を許さないインデックス。主キーや制約と密接な関係を持つ。
- 発展カバリングカバリングインデックス
SELECT対象カラムをすべて含むインデックス。テーブル本体を読まずに完結する。
- 発展部分部分インデックス
条件に合う行だけを対象にした小さなインデックス。特定パターンのクエリを効率化する。
オンライン個別指導
もっと深くDBを学びたい方へ。
たいてっくが、SQL・データベース設計・パフォーマンスチューニング・IPAデータベーススペシャリスト対策まで、1対1で学習をサポートします。まずは無料相談から。
受講者の声 (DB・SQL コース)
menta レビュー原文を見る →「教え方も上手で、お人柄も良いメンターです。DB周りの知識はもちろん、何より、しっかり教えてあげようという姿勢がとてもありがたかったです。データベース、SQLの学習を考えている方にはおススメです。」
— H 様(DB・SQL コース受講)「体系的に知識を教えてくださり、実際の業務でも大変役立っております。特に短い時間で効率よく知識の習得や、練習をできているのは期待以上でした。」
— M 様(DB・SQL コース受講)「大変充実したコンテンツでわかりやすいご説明をありがとうございました。基本的な質問にも丁寧にご説明いただき、また業務のご相談にも乗って頂き大変有意義な時間でした。」
— K 様(DB・SQL コース受講)
このセクションの特徴
特徴 01
手を動かして理解
静的な図ではなく、値を変えたり探索を再生したりできる。数字の裏で何が起きているかが体感できます。
特徴 02
抽象化された本質
特定のRDBMSに依存せず、B-tree・ハッシュ・クラスタ化などの本質的な仕組みに集中します。
特徴 03
レベル別の学習経路
実務で必要な基礎から、IPAデータベーススペシャリスト級の発展まで、必要なところだけ学べます。
よくある疑問
Q.インデックスはどれから読むとわかりやすいですか?
A.「なぜインデックスが必要か」から順に読んでください。フルスキャンがなぜ遅いのかを I/O の単位で押さえないと、B-tree の説明が「木の絵の暗記」になります。そのあと B-tree、クラスタ化、複合の 3 本を読めば、実務で貼るインデックスの判断はほぼ付きます。ハッシュ・部分・カバリングは必要になったときで構いません。
Q.実務で最低限おさえるべきインデックスはどれですか?
A.B-tree と複合インデックスの 2 つです。実際に業務で作るインデックスのほとんどは B-tree で、遅いクエリの原因の多くは「複合インデックスの列順が検索条件と合っていない」ことに帰着します。次に実行計画 (EXPLAIN) の読み方、その次に更新コスト(貼りすぎのデメリット)の順で広げるのが効率的です。
Q.特定のデータベース製品の話ですか?
A.いいえ。B-tree・ハッシュ・クラスタ化といった仕組みそのものを扱うので、MySQL・PostgreSQL・Oracle のどれを使っていても通用します。製品ごとに挙動が分かれる箇所(クラスタ化インデックスの有無、ハッシュインデックスの制約など)は、その都度どの製品の話かを明記しています。
Q.データベーススペシャリスト試験の対策になりますか?
A.なります。実行計画・統計情報とオプティマイザ・カバリングインデックス・部分インデックスは、午後問題で問われる範囲です。ただし本セクションは試験の解法ではなく仕組みの理解を目的にしているので、過去問演習と併用してください。