我有一张表,例如:
create table T1(Id int primary key auto_increment, Value text)
Value
用于存储“文本”数据,但根据Value
列,行永不排序。
Value
应该选择哪种排序规则?
utf8mb4_bin
会是更好的选择还是utf8mb4_general_ci
?
答案 0 :(得分:2)
看起来很好。我肯定不会使用不区分大小写的排序规则(如果不需要)(因为它可能)会导致查询速度变慢(尽管我怀疑它会无论如何都要用于非文本字段。)
但是,您应该记住,排序规则不仅适用于排序,还适用于选择(例如,where
子句)。如果您只想根据Value
以外的列检索行,那应该没关系。
在任何情况下,我实际上都不是数据库本身对不区分大小写的排序规则的忠实粉丝,因为我宁愿让数据库尽可能快地运行,并使用我的拥有< / em>处理案例问题的方法(例如一个额外的索引列保存较低的姓氏,并使用插入/更新触发器更新以保持与行的其余部分的一致性。)
基本上,我是Luddite :-)但是没有人抱怨他们的数据库是如何大,只是关于如何慢。