Hoje, sete bancos de dados em sete semanas me apresentaram os índices por operador.
Você pode indexar seqüências de caracteres para o padrão que corresponde às consultas anteriores, criando um
text_pattern_ops
índice de classe do operador, desde que os valores sejam indexados em minúsculas.
CREATE INDEX moves_title_pattern ON movies (
(lower(title) text_pattern_ops);
Usamos o
text_pattern_ops
porque o título é do tipo texto. Se você precisar índice VARCHAR, caracteres, ou nomes, use os ops relacionados:varchar_pattern_ops
,bpchar_pattern_ops
, ename_pattern_ops
.
Acho o exemplo realmente confuso. Por que é útil fazer isso?
Se a coluna for do tipo texto, os outros tipos (varchar, char, name) não serão convertidos em texto antes de serem usados como um valor de pesquisa?
Como esse índice se comporta de maneira diferente de um usando o operador padrão?
CREATE INDEX moves_title_pattern ON movies (lower(title));