Сьогодні Сім баз даних за сім тижнів познайомили мене з індексами кожного оператора.
Ви можете проіндексувати рядки для зразка, що відповідає попереднім запитам, створивши
text_pattern_ops
індекс класу операторів, якщо значення індексуються в малі регістри.
CREATE INDEX moves_title_pattern ON movies (
(lower(title) text_pattern_ops);
Ми використовували це,
text_pattern_ops
тому що заголовок є текстовим типом. Якщо вам потрібно індексувати VARCHARS, символи або назв, використовуйте відповідний оп:varchar_pattern_ops
,bpchar_pattern_ops
, іname_pattern_ops
.
Я вважаю, що приклад дуже заплутаний. Чому корисно це робити?
Якщо стовпець є текстовим типом, чи не будуть інші типи (varchar, char, ім'я) передаватися тексту перед тим, як використовуватись як значення пошуку?
Як цей індекс поводиться інакше, ніж один, який використовує оператор за замовчуванням?
CREATE INDEX moves_title_pattern ON movies (lower(title));