何时使用utf8mb4(bin、general\u ci、unicode\u 520\u ci)?

5w9g7ksd  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(588)

这个问题在这里已经有答案了

utf-8:通用?箱子?unicode(5个答案)
两年前关门了。
我对mysql排序规则及其编码感到困惑,人们通常使用以下三种排序规则之一:
utf8mb\u箱
utf8mb4\u常规\u ci
utf8mb4\U unicode\U 520\U ci
我不明白的是什么时候需要使用这些排序规则,比如,
像这样的名字的表格

[id - name]

它只有来自不同语言的名字和字符,比如法语,德语,拉丁语。
我用这样一个表的排序规则吗 utf8mb_bin 还是坚持 utf8mb4_unicode_520_ci ,
另一方面,博客主题表,例如:

[id - title - subject]

我是否将所有列排序到 utf8mb4_unicode_520_ci 或使用: utf8mb_bin 为了
title utf8mb4_unicode_520_ci 为了 subject 据我所知 utf8mb4_unicode_520_ci 在博客主题中使用了一些情绪化的东西,或者我只是忽略了所有的东西而仅仅使用了它 utf8mb4_unicode_520_ci 全部?
但总的来说,使用这些不同的排序规则有什么意义呢?他们是如何影响我的成绩的 SELECT 询问?
在贝里夫我想知道的是:
对以下各项使用什么排序规则:
姓名
标题
学科
电子邮件
bios
信息
用户名

hfwmuf9z

hfwmuf9z1#

你把编码和排序搞混了。
可用字符由编码定义(并且仅由编码定义)。因为utf-8是一种unicode兼容编码,所以您拥有所有字符。mysql的特点是 utf8 编码并没有真正实现utf-8,而只是一个子集,因为它为每个字符分配3个字节,而(到今天为止)有些字符需要4个字节。因此 utf8mb4 他出生了。
排序规则是一组规则,告诉您如何 WHERE foo = bar 以及 ORDER BY foo 工作。你需要问自己:如果我寻找 internet ,是否匹配 Internet ? 如果您存储法语、德语和拉丁语单词,您很可能不需要二进制排序规则。理想情况下,您需要一个与您将要使用的语言的确切规则,但由于您混合语言,您将不得不选择一个通用排序规则。在阅读utf8mb4\u unicode\u ci和utf8mb4\u unicode\u 520\u ci排序规则之间的差异之后,您可以做出明智的决定。

相关问题