如果我通过创建以下索引将users.email上的常规唯一索引更改为不区分大小写的索引:
users.email
CREATE UNIQUE INDEX user_email_ci_idx ON users ((lower(email)));
有什么理由不删除前面的区分大小写的索引吗?我猜Postgres将切换到新的索引,性能将是等同的?
2sbarzqh1#
新索引只能用于基于索引表达式的条件:
... WHERE lower(email) = 'abc@foo.org' -- search string in lower case.
只要记住这一点,就可以删除旧的区分大小写索引。或者您可以看看trigram indexes,它一开始就不区分大小写。参见:
1条答案
按热度按时间2sbarzqh1#
新索引只能用于基于索引表达式的条件:
只要记住这一点,就可以删除旧的区分大小写索引。
或者您可以看看trigram indexes,它一开始就不区分大小写。
参见: