Hari ini Seven Databases dalam Seven Weeks memperkenalkan saya ke indeks per operator.
Anda bisa mengindeks string untuk pola yang cocok dengan kueri sebelumnya dengan membuat
text_pattern_ops
indeks kelas operator, asalkan nilainya diindeks dalam huruf kecil.
CREATE INDEX moves_title_pattern ON movies (
(lower(title) text_pattern_ops);
Kami menggunakan
text_pattern_ops
karena judulnya adalah tipe teks. Jika Anda perlu indeks varchars, karakter, atau nama, gunakan ops terkait:varchar_pattern_ops
,bpchar_pattern_ops
, danname_pattern_ops
.
Saya menemukan contohnya sangat membingungkan. Mengapa bermanfaat untuk melakukan ini?
Jika kolom adalah tipe teks, bukankah tipe lainnya (varchar, char, name) dapat digunakan untuk teks sebelum digunakan sebagai nilai pencarian?
Bagaimana indeks itu berperilaku berbeda dari yang menggunakan operator default?
CREATE INDEX moves_title_pattern ON movies (lower(title));