Aujourd'hui, sept bases de données en sept semaines m'ont présenté les index par opérateur.
Vous pouvez indexer des chaînes pour le modèle correspondant aux requêtes précédentes en créant un
text_pattern_ops
index de classe d'opérateur, tant que les valeurs sont indexées en minuscules.
CREATE INDEX moves_title_pattern ON movies (
(lower(title) text_pattern_ops);
Nous avons utilisé le
text_pattern_ops
car le titre est de type texte. Si vous avez besoin d'indexer Varchars, caractères, ou les noms, utilisez les opérations connexes:varchar_pattern_ops
,bpchar_pattern_ops
etname_pattern_ops
.
Je trouve l'exemple vraiment déroutant. Pourquoi est-il utile de faire cela?
Si la colonne est de type texte, les autres types (varchar, char, name) ne seraient-ils pas convertis en texte avant d'être utilisés comme valeur de recherche?
Comment cet index se comporte-t-il différemment de celui utilisant l'opérateur par défaut?
CREATE INDEX moves_title_pattern ON movies (lower(title));