用語集に戻る
データベース中級

インデックス

いんでっくす

一言で言うと

データベースの検索を高速化するための「索引」。本の巻末にある索引ページのように、目的のデータをすばやく見つける仕組み。

もう少し詳しく

一言で言うと

データベースの検索を高速化するための「索引」。本の巻末にある索引ページのように、目的のデータをすばやく見つける仕組み。

もう少し詳しく

インデックスは、データベースの検索性能を上げるための仕組みです。分厚い辞書で「プログラミング」という言葉を探すとき、1ページ目からめくっていたら何時間もかかりますよね。でも巻末の索引を見れば「プ → 532ページ」とすぐにたどり着けます。

データベースのインデックスもまったく同じ仕組みです。100万件のデータから「メールアドレスがtanaka@example.comの人」を探すとき、インデックスがなければ100万件を全部チェックする必要があります。インデックスがあれば、一瞬で見つかります。

ただし、インデックスは保存容量を追加で使い、データの追加・更新時に索引の更新も必要になるため、むやみに作りすぎると逆に遅くなることもあります。

実務でどう使うか

  • マーケティング: 「ユーザー検索画面が遅い」という課題に対して、「検索条件のカラムにインデックスを張っていますか?」と確認できると、問題解決が早まります

  • デザイン: 検索機能の応答速度はUXに直結します。インデックスの有無で検索体験が大きく変わることを知っておくと、パフォーマンス要件を適切に設定できます

  • PM: データ量が増えたときの性能問題を予測するために、インデックス設計の基本を知っておくことが重要です
  • コードで見てみよう

    -- メールアドレスで検索することが多い場合、
    -- インデックスを作成して高速化する
    CREATE INDEX idx_email ON users (email);

    -- インデックスなし: 100万行を全部チェック(数秒〜)
    -- インデックスあり: 索引から直接アクセス(0.001秒)

    SELECT * FROM users WHERE email = 'tanaka@example.com';
    -- → インデックスがあれば一瞬で見つかる!

    関連する用語

    この用語を学べるコース

    この用語を実際に使ってみよう

    チョットデキルなら、5分のレッスンで実際にコードを書いて学べます。

    コース一覧を見る