インデックス
いんでっくす
一言で言うと
データベースの検索を高速化するための「索引」。本の巻末にある索引ページのように、目的のデータをすばやく見つける仕組み。
もう少し詳しく
一言で言うと
データベースの検索を高速化するための「索引」。本の巻末にある索引ページのように、目的のデータをすばやく見つける仕組み。
もう少し詳しく
インデックスは、データベースの検索性能を上げるための仕組みです。分厚い辞書で「プログラミング」という言葉を探すとき、1ページ目からめくっていたら何時間もかかりますよね。でも巻末の索引を見れば「プ → 532ページ」とすぐにたどり着けます。
データベースのインデックスもまったく同じ仕組みです。100万件のデータから「メールアドレスがtanaka@example.comの人」を探すとき、インデックスがなければ100万件を全部チェックする必要があります。インデックスがあれば、一瞬で見つかります。
ただし、インデックスは保存容量を追加で使い、データの追加・更新時に索引の更新も必要になるため、むやみに作りすぎると逆に遅くなることもあります。
実務でどう使うか
コードで見てみよう
-- メールアドレスで検索することが多い場合、
-- インデックスを作成して高速化する
CREATE INDEX idx_email ON users (email);-- インデックスなし: 100万行を全部チェック(数秒〜)
-- インデックスあり: 索引から直接アクセス(0.001秒)
SELECT * FROM users WHERE email = 'tanaka@example.com';
-- → インデックスがあれば一瞬で見つかる!