Сегодня « Семь баз данных за семь недель» познакомили меня с индексами для каждого оператора.
Вы можете индексировать строки для шаблона, соответствующего предыдущим запросам, создав
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
.
Я нахожу пример действительно запутанным. Почему это полезно?
Если столбец имеет тип text, не будут ли другие типы (varchar, char, name) преобразованы в текст перед использованием в качестве значения для поиска?
Как этот индекс ведет себя иначе, чем индекс, использующий оператор по умолчанию?
CREATE INDEX moves_title_pattern ON movies (lower(title));