gpt4 book ai didi

database - 为什么需要区分大小写的数据库?

转载 作者:太空狗 更新时间:2023-10-30 01:45:35 25 4
gpt4 key购买 nike

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

最佳答案

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

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

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

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

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

关于database - 为什么需要区分大小写的数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2986530/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com