【问题标题】:Which collation is preferred when sorting is not required?不需要排序时首选哪种排序规则?
【发布时间】:2011-12-05 10:28:05
【问题描述】:

我有一张桌子,例如:

create table T1(Id int primary key auto_increment, Value text)

Value 用于存储“文本”数据,但行从不根据Value 列排序

Value 应该首选哪种排序规则?

utf8mb4_bin 是更好的选择还是utf8mb4_general_ci

【问题讨论】:

    标签: php mysql database collation


    【解决方案1】:

    看起来不错。如果不需要(根据您的情况),我当然不会使用不区分大小写的排序规则,因为它可能会导致查询速度变慢(尽管我怀疑它会无论如何都要用于非文本字段)。

    但是,您应该记住,排序规则不仅用于排序,还用于选择(例如,where 子句)。如果您只想根据Value 以外的列检索行,那没关系。

    无论如何,我实际上并不喜欢由数据库本身完成不区分大小写的排序规则,因为我宁愿让数据库以尽可能快的速度运行,并使用我自己的 /em> 处理大小写问题的方法(例如一个额外的索引列包含小写姓氏,并使用插入/更新触发器进行更新以保持与行其余部分的一致性)。

    基本上,我是一个卢德分子 :-) 但没有人抱怨他们的数据库有多大,只抱怨有多慢。

    【讨论】:

    • 当你说你是一个卢德分子时,你的意思是在过去是这样的吗?甚至达到行业标准水平?
    猜你喜欢
    • 2010-11-16
    • 2012-12-18
    • 1970-01-01
    • 2023-04-11
    • 2012-09-11
    • 2021-09-10
    • 2020-08-18
    • 2012-01-19
    • 2016-10-03
    相关资源
    最近更新 更多