データベースのインデックス(索引)B-treeインデックス
フルスキャン
テーブルに格納されたデータを取り出す方法として、 フルスキャン
テーブルの全レコードから検索に一致する行をチェックする
全レコードを確認するため、検索にかかるコストは、レコード数に比例して増える
- データ追加の場合は、ファイルの末尾に1レコード分のデータが付け足される
全レコードをスキャンするので、レコード数の多いテーブルには向かない。
インデックススキャン
フルスキャンだと効率が悪いので、より速くデータにアクセスするためのアイデアとして、インデックスがある。
全レコード見なくてすむようにするためには? 索引的なことができるように、メタデータをつくる。 ある検索条件にソート済みのメタデータを用意する。メタデータには実際に値があるデータに対するポインタが含まれている。
B-treeインデックス
インデックスの中にも様々な種類がある。その一つがB-treeインデックス - アイデア:ソート済みのデータをいくつかのレンジに分割して、検索範囲を削減する
まず対象がどのレンジに含まれるかを検索、その後レンジに含まれる行を全てチェックする
PostgreSQLでは検索条件として、先頭の文字列であれば使うことができる