使用二进制排序规则有什么影响?
在回答这个问题时,我不确定自己没有设法找到足够的答案。
使用二进制排序规则utf8_bin
和不区分大小写的utf8_general_ci
排序规则之间的实际区别是什么?
我可以看到三个:
两者的排序顺序不同;
_bin
的排序顺序可能会将任何变音符放在字母表的末尾,因为比较了字节值(对吗?)仅区分大小写的搜索
_bin
没有
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