SQLチューニングの基礎知識 「データアクセスと索引(インデックス)」の関係を理解するゼロからのリレーショナルデータベース入門(5)(2/3 ページ)

» 2017年01月06日 05時00分 公開
[坂田素道株式会社アシスト]

索引スキャンの特徴

 索引スキャン(インデックススキャン)は、索引(さくいん)情報を使って、条件に該当するデータの場所を特定してから、表にアクセスする方法です。

 書籍の巻末にある索引を思い浮かべてみてください。数百ページに及ぶ書籍から特定の情報を効率よく探したい場合には、索引から五十音順やアルファベット順に並んだキーワードを探せば、該当するページが簡単に分かります。

 データベースにおける索引スキャンの目的や役割もこれと同じです。

 例えば、社員名で検索を行う場合は、あらかじめ社員名の列に索引を作成します。索引では、必要な情報を短時間で見つけ出せるように、キーワードとなる列(ENAME列)の値が順に並べられ、列の値と行の位置情報がひも付けられています(図3)。

photo 図3 ENAME列に作成した索引の構造

 「BLAKE」さんの社員データを検索する場合、まず索引にアクセスして、BLAKEさんの行データが「EMP表のどこにあるのか」を割り出します。その後、この情報を基にEMP表にアクセスすることで、「BLAKE」さんの行データへピンポイントにアクセスできます。

photo 図4 索引スキャンによるデータアクセス

 このように、索引スキャンは表の一部のデータに効率よくアクセスできる特徴があります。その一方で、表の大部分のデータにアクセスする場合には不向きです。これも書籍の場合と同じです。ほとんどのページを読まなければならない場合は、索引を使わずに全てのページに目を通した方が早く読み終えることができるでしょう。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。