式インデックス

出典: フリー百科事典『ウィキペディア(Wikipedia)』

式インデックス(しきインデックス、: expression index)または関数インデックス: function-based index)は関係データベース管理システムで用いられるインデックスの中で、の組み合わせの代わりに任意の式の結果をキーとするものを指す。 式インデックスを使うと、テーブルに格納された実際のデータとは異なるキーでの検索が可能になる。

式インデックスの一般的な使用例として、大文字小文字を区別しない検索または一意性制約がある。 例えば、ユーザ名を大文字小文字を区別せずに検索を行い、かつ入力されたユーザ名の大文字小文字を保持したい場合が挙げられる。この場合、小文字に変換して格納するだけは要件を満たせない。一意性制約のための UNIQUE INDEX は、大文字もしくは小文字に変換後のユーザ名 (user_name) に対して定義できる:

CREATE UNIQUE INDEX idx_user_name_lower ON user_table( lower( user_name ) );

検索クエリは WHERE句に lower(user_name) を指定することで、 このインデックスを使うことができる:

SELECT user_id FROM user_table WHERE lower(user_name) = lower('Decibel');

サポート[編集]

  • PostgreSQL は式インデックスをサポートしている[1]
  • Microsoft SQL Server は式インデックスを直接はサポートしないが、計算列に対するインデックスの作成で代用できる[2]

脚注[編集]

  1. ^ 式に対するインデックス”. PostgreSQL 8.4.0文書. PostgreSQL. 2009年8月29日閲覧。
  2. ^ 計算列に対するインデックスの作成”. SQL Server オンライン ブック. Microsoft. 2009年8月29日閲覧。