インデックス
いんでっくす
Index
一言でいうと
データベースの検索を高速化するための「索引」のこと。
詳しい意味
インデックスは、データベース上で検索を高速化するための「索引」です。本の最後にある索引(巻末索引)と同じ仕組みで、目的のデータを全件走査せずに直接見つけ出せます。よく検索される列(メールアドレス、ユーザーID、日付など)にインデックスを張ると、クエリが何倍〜何百倍も速くなります。一方、インデックスが多すぎると書き込みが遅くなる・容量を食う、というトレードオフがあります。「どの列にインデックスを張るか」「複合インデックスの順序はどうするか」が性能設計の腕の見せどころです。
何に使うか
頻繁に検索される列のクエリを高速化したいとき。スロークエリログを改善するとき。新しい検索画面を追加した後の性能チューニング。
どんな時に出るか
「インデックスを張る」「インデックスが効いてない(フルスキャンになっている)」「複合インデックス」といった場面で登場します。
具体例
- user_id にインデックスを張って、ログ検索のクエリが3秒から30msに改善した。
- インデックスが多すぎてINSERTが遅くなったので、使われていないインデックスを削除した。
別名・略称
index(いんでっくす)索引(さくいん)
初心者向けメモ
辞書や本の索引と同じ役割です。500ページの本から特定の用語を探す時、巻末索引があれば該当ページにすぐ飛べます。無ければ最初から1ページずつめくる羽目になります。データベースも同じです。