今天,七周内的七个数据库向我介绍了每个操作员的索引。
您可以通过创建
text_pattern_ops
运算符类索引来索引字符串以匹配先前查询的模式,只要这些值以小写形式索引即可。
CREATE INDEX moves_title_pattern ON movies (
(lower(title) text_pattern_ops);
我们使用了,
text_pattern_ops
因为标题是文本类型。如果您需要索引 varchars、chars 或名称,请使用相关操作:varchar_pattern_ops
、bpchar_pattern_ops
和name_pattern_ops
.
我发现这个例子真的很混乱。为什么这样做有用?
如果列是文本类型,在用作搜索值之前,其他类型(varchar、char、name)是否会转换为文本?
该索引与使用默认运算符的索引有何不同?
CREATE INDEX moves_title_pattern ON movies (lower(title));
文档通常会为您提供此类问题的答案。就像在这种情况下一样:
文档接着说:
您可以按如下方式检查您的语言环境(可能是 UTF8 而不是“C”):