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

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

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

我可以看到三个:

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

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

  3. 没有A = Ä平等_bin

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

参考:

  • 9.1.2。MySQL中的字符集和排序规则
  • 9.1.7.6。mySQL手册中的_bin和二进制排序规则
  • 9.1.7.7。BINARY运算符

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

  • UTF-8:一般?斌吗 Unicode?

回答:

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

非自然排序顺序的一个示例(如“

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

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

以上是 使用二进制排序规则有什么影响? 的全部内容, 来源链接: utcz.com/qa/404452.html

回到顶部