今日、Seven WeeksのSeven Databasesでは、オペレーターごとのインデックスを紹介しました。
text_pattern_ops
値が小文字でインデックス付けされている限り、演算子クラスインデックスを作成することにより、以前のクエリに一致するパターンの文字列にインデックスを付けることができます。
CREATE INDEX moves_title_pattern ON movies (
(lower(title) text_pattern_ops);
text_pattern_ops
タイトルがテキストタイプであるため、これを使用しました。あなたは、インデックスのvarchar、文字、または名前に必要な場合は、関連するオペレーションを使用しますvarchar_pattern_ops
、bpchar_pattern_ops
とname_pattern_ops
。
この例は本当に紛らわしいと思います。なぜこれが便利なのですか?
列がテキストタイプの場合、他のタイプ(varchar、char、name)は検索値として使用される前にテキストにキャストされませんか?
そのインデックスは、デフォルト演算子を使用したインデックスとどのように動作しますか?
CREATE INDEX moves_title_pattern ON movies (lower(title));