为什么要使用区分大小写的数据库?

在不区分大小写的情况下选择区分大小写的排序规则有哪些原因?在进行字符串比较时,我可以看到数据库引擎可能获得适度的性能提升.是吗?如果您的数据设置为全部较低或大写,则区分大小写可能是合理的,但如果您存储混合大小写数据然后尝试查询它则会造成灾难.然后你必须在列上应用lower()函数,以便它匹配相应的小写字符串文字.这可以防止我使用的每个dbms中的索引使用.所以想知道为什么有人会使用这样的选择.

解决方法

有许多带有自然区分大小写的键的数据示例:

>像Unix这样的区分大小写的文件系统中的文件.
> Base-64编码名称(我相信YouTube正在使用的名称,如Artelius的回答).
>大多数编程语言中的符号.

在不区分大小写的系统中存储区分大小写的数据会存在数据不一致甚至丢失重要信息的风险.在最坏情况下,在区分大小写的系统中存储不区分大小写的数据效率会稍低.正如您所指出的,如果您只知道要查找的对象的不区分大小写的名称,则需要调整查询

SELECT * FROM t WHERE LOWER(name) = 'something';

我注意到在Postgresql中(可能在其他系统中),在表达式LOWER(name)上创建一个索引是一件简单的事情,它将用于此类查询.

相关文章

(一)日志传送架构 (1.1)相关服务器 主服务器 :用于生产的服务器,上面运行这生产SQL Server数据库...
(一)事故背景 最近在SQL Server 2012生产数据库上配置完事物复制(发布订阅)后,生产数据库业务出现了...
(一)测试目的 目前公司使用的SQL SERVER 2012高可用环境为主备模式,其中主库可执行读写操作,备库既...
(一)背景个人在使用sql server时,用到了sql server的发布订阅来做主从同步,类似MySQL的异步复制。在...
UNION和OR谓词 找出 product 和 product2 中售价高于 500 的商品的基本信息. select * from product wh...
datawhale组队学习task03