インデックスの作成

広告

データを高速に検索したい場合に使用されるのがインデックスです。ここではSQLiteでインデックスを作成する方法について解説します。

1.インデックスの作成
2.インデックスを利用したデータの検索
3.データベースの中に作成されているインデックス一覧

基本となる構文は下記の通りです。

CREATE INDEX インデックス名 ON テーブル名(カラム名1, カラム名2, ...);

インデックスはテーブルに含まれるカラムを対象として作成します。単独のカラムに対してインデックスを作成することできまし、複数のカラムを組み合わせたものに対してインデックスを作成することもできます。

それでは実際にインデックスを作成してみます。まずは次のようなテーブルを作成し、データをいくつか追加しておきました。

create table user(name text, old integer, address text);

p2-1

「name」カラムを対象としたインデックスを作成します。今回はインデックス名を「nameindex」にしました。

create index nameindex on user(name);

p2-2

上記のように表示されればインデックスの作成は完了しています。

インデックスを作成している場合としていない場合でデータの検索の仕方には違いはありません。インデックスが作成されていれば自動的にインデックスを使って検索が行われます。

例えばインデックスが作成済の「name」カラムを対象とした検索は次のように行います。

select * from user where name = 'Suzuki';

p2-3

このようにインデックスが作成されているかどうかは意識する必要がありません。

データベースの中に作成されているインデックスの一覧を確認するにはSQLiteコマンドの「.indices」を使います。

.indices
.indices ?TABLE?

引数を省略した場合には作成済みのインデックス一覧を表示します。引数にテーブル名を指定した場合には、指定した値に一致するテーブルを対象としたインデックスの一覧を表示します。

では実際に試してみます。

.indices

p2-4

このページで作成したインデックスが表示されました。

SQLite入門の他の記事を見てみる

( Written by Tatsuo Ikura )