一尘不染

使用二进制排序规则有什么影响?

mysql

在回答这个问题时,我不确定自己没有设法找到足够的答案。

使用二进制排序规则utf8_bin和不区分大小写的utf8_general_ci排序规则之间的实际区别是什么?

我可以看到三个:

  1. 两者的排序顺序不同;_bin的排序顺序可能会将任何变音符放在字母表的末尾,因为比较了字节值(对吗?)

  2. 仅区分大小写的搜索 _bin

  3. 没有A = Ä平等_bin

还有其他需要注意的差异或副作用吗?

参考:

无法解决该问题的类似问题:


阅读 382

收藏
2020-05-17

共1个答案

一尘不染

如果字符不同(二进制大小写或变音符号不同),二进制排序规则将完全按照C语言中的strcmp()进行字符串比较。缺点是排序顺序不自然。

非自然排序顺序的一个示例(如“
binary”所示)是:A,B,a,b在这种情况下,自然排序顺序将是例如:A,a,B,b(对sme字母的小写和大写字母进行排序彼此相邻)

二进制排序规则的实际优势是它的速度,因为字符串比较非常简单/快速。在一般情况下,带有二进制的索引可能不会产生预期的排序结果,但是对于完全匹配,它们可能很有用。

2020-05-17