コース: プログラミングの基礎:データベース

今すぐコースを受講しましょう

今すぐ登録して、23,100件以上登録されている、業界エキスパート指導のコースを受講しましょう。

インデックスを理解する

インデックスを理解する

このレッスンでは テーブルデータの検索を高速にする インデックスとは何かについて説明します。 データベースが大きくなるにつれて、 より高速にデータをアクセスする必要が 生じます。 それにはインデックスを作成して 使用することです。 データベースのインデックスは 書籍の後ろにある索引のようなものです。 本の索引を使うと 目的の項目に素早くたどり着けるように インデックスを使用すると 目的のデータを 素早く見つけることができます。 本の中で索引を使わないで 何かの項目を探す場合には 最初のページから 順に読んでいくことになります。 データベースでもインデックスを使わないと 目的のデータが見つかるまで、 すべての行をひとつずつ操作していきます。 ですからデータ量が多くなればなるほど 検索時間は多くなります。 一方、インデックスを使用すると 特定のデータがどこにあるのかを 効率的に探すことができます。 ですからデータ量の多いテーブルでは 通常インデックスを設定します。 インデックスはクラスタ化インデックスと 非クラスタ化インデックスに 大きく分かれます。 ここに顧客情報を扱う Customerテーブルがあります。 このテーブルのデータは 構造化されておらず 順序付けられてもいません。 CustomerIDに 主キーを設定してはいますが、 それとデータが CustomerIDの順番に 登録されていることとは 別の問題です。 クエリを書く時に ORDER BY句を使って CustomerIDの順番に 取得することはできますが、 そのまま呼び出した場合、 一定の順序に並んでいることはありません。 ここでクラスタ化インデックスとして CustomerIDを選択すると テーブル内のデータ行を そのCustomerIDに基づいて並び替えて ディスクに保存します。 これでCustomerIDは主キーでもあり クラスタ化インデックスでもあります。 ここでCustomerIDを使って SELECT文を実行すると 非常に高速に検索が行われます。 通常、個々の行にアクセスするためには 主キーを選択することが多いので CustomerIDをインデックスにするのは 最良の選択肢です。 実際、ほとんどのDBMSでは 新しいテーブルを定義すると 特に明記しない限り、 自動的に主キーが…

目次