Bugün Yedi Haftada Yedi Veritabanları beni operatör başına dizinlerle tanıştırdı.
text_pattern_ops
Değerler küçük harfle indekslendiği sürece, bir operatör sınıfı dizini oluşturarak önceki sorgularla eşleşen desen için dizeleri dizinleyebilirsiniz.
CREATE INDEX moves_title_pattern ON movies (
(lower(title) text_pattern_ops);
text_pattern_ops
Başlığını metin türünde olduğu için kullandık . Endeksi varchars karakter veya isimler Sizin gerekiyorsa, ilgili op kullanın:varchar_pattern_ops
,bpchar_pattern_ops
vename_pattern_ops
.
Örneği gerçekten kafa karıştırıcı buluyorum. Bunu yapmak neden yararlıdır?
Sütun metin türüyse, diğer türler (varchar, char, name) arama değeri olarak kullanılmadan önce metne çevrilmez mi?
Bu indeks, varsayılan operatörü kullanarak bir dizinden nasıl farklı davranır?
CREATE INDEX moves_title_pattern ON movies (lower(title));