インデックスと照合順序

PostgreSQL 9.1.1文書
前のページ | 巻戻し | 第 11章インデックス | 早送り | 次のページ

# 11.10. インデックスと照合順序

インデックスはインデックス列当たり１つの照合順序のみをサポートすることができます。 複数の照合順序を考慮しなければならない場合、複数のインデックスが必要になるかもしれません。

以下の文を考えてみます。

    CREATE TABLE test1c (
        id integer,
        content varchar COLLATE "x"
    );

    CREATE INDEX test1c_content_index ON test1c (content);

このインデックスは自動的に背後にある列の照合順序を使用することになり、

    SELECT * FROM test1c WHERE content > constant;

という形式の問い合わせでは、この比較はデフォルトで列の照合順序を使用しますので、このインデックスを使用することになります。 しかし、このインデックスは何らかの他の照合順序を含む問い合わせを高速化することはできません。 このため

    SELECT * FROM test1c WHERE content > constant COLLATE "y";

という形式の問い合わせも考慮しなければならない場合は、以下のように`"y"`照合順序をサポートする追加のインデックスを作成することになります。

    CREATE INDEX test1c_content_y_index ON test1c (content COLLATE "y");

前のページ | ホーム | 次のページ
演算子クラスと演算子族 | 上に戻る | インデックス使用状況の検証