LINEで個別相談
データベース 2026-04-08

データベースインデックス(索引)

データベースの検索速度を向上させるためのデータ構造。B木・ハッシュ・全文検索等の種類があり、適切なインデックス設計はクエリパフォーマンスを劇的に改善する。

データベースインデックスとは?

インデックス(索引)は、データベースの検索速度を向上させるためのデータ構造です。本の目次と同じ役割を果たし、全行を順番にスキャン(フルテーブルスキャン)せずに目的のデータを高速で見つけられます。

インデックスの仕組み(B木)

最も一般的なB木(B-Tree)インデックスは、データを木構造で整理します。

                [50]
        [20]           [70]
    [10] [30]      [60] [80]

WHERE id = 30 のクエリなら、全行スキャンではなく木を辿るだけで3ステップで見つけられます。

インデックスの種類

種類用途
B木(デフォルト)範囲検索・ソートに対応(最も汎用的)
ハッシュ完全一致検索のみ・非常に高速
全文検索(GIN/GiST)LIKE検索・テキスト検索
複合インデックス複数列を組み合わせたインデックス
部分インデックスWHERE条件を絞ったインデックス
一意インデックス重複値を禁止(UNIQUE制約)

インデックスの注意点

  • 書き込みが遅くなる: INSERT/UPDATE/DELETE時にインデックスも更新
  • ディスクを使用: インデックスはストレージを消費する
  • カーディナリティ: 値の種類が少ない列(フラグ等)にはインデックス効果が薄い

パフォーマンス確認

-- クエリの実行計画を確認(PostgreSQL)
EXPLAIN ANALYZE SELECT * FROM users WHERE email = 'test@example.com';

まとめ

インデックスは「クエリが遅い」と感じたら最初に確認すべき項目です。ただし無闇に増やすと書き込みが遅くなるため、実際に使われるクエリを分析してから設計することが重要です。

関連する用語 (データベース)

全23件を見る

ACID特性(トランザクション4要件)

データベーストランザクションの信頼性を保証する4つの特性。原子性(Atomicity)・一貫性(Consistency)・独立性(Isolation)・永続性(Durability)の頭文字をとった概念。

詳しく読む

データベースマイグレーション

データベースのスキーマ(テーブル構造)変更をバージョン管理し、順序立てて適用する仕組み。Prisma Migrate・Flyway・Liquibaseが代表的なツール。

詳しく読む

SQL

リレーショナルデータベース(RDB)を操作・検索するための標準言語。

詳しく読む

IT用語: MySQLとは|世界最多採用のオープンソースリレーショナルデータベース

WordPress・ECサイト・SNSに広く使われるMySQL(MariaDB)の特徴・ストレージエンジン・チューニングを解説。

詳しく読む

PostgreSQL(ポストグレSQL)

オープンソースのリレーショナルデータベース。ACID準拠・豊富な機能・強力なSQL拡張・JSONサポートを持ち、企業向けから個人プロジェクトまで幅広く使われる高信頼性DBMSの代表格。

詳しく読む

ORM(オブジェクト関係マッピング)

プログラミング言語のオブジェクトとデータベースのテーブルを対応付け、SQLを書かずにDBを操作できるようにするライブラリ。Prisma・TypeORM・Sequelize等が代表的。

詳しく読む

Sponsored Link

バグ・要望を報告する