Tol*_*leo 7 mysql collation character-encoding utf8mb4
我对 MySQL 排序规则及其编码感到困惑,人们通常使用以下三种排序规则之一:
我不明白的是何时在需要时使用这些排序规则中的每一个,例如,
像这样的名字的表
[id - name]
Run Code Online (Sandbox Code Playgroud)
它只会有来自不同语言(如法语、德语、拉丁语)的名称字符。. .
对于这样的表,我是使用 的整理utf8mb_bin还是坚持使用utf8mb4_unicode_520_ci,
另一方面,例如博客主题的表:
[id - title - subject]
Run Code Online (Sandbox Code Playgroud)
我是否将所有列整理utf8mb4_unicode_520_ci或使用:
utf8mb_bin 为了 title
utf8mb4_unicode_520_ci 为了 subject
因为据我所知,其中utf8mb4_unicode_520_ci有一些表情符号可用于博客主题,还是我只是忽略所有内容而仅使用utf8mb4_unicode_520_ci所有内容?
但总的来说,使用这些不同的排序规则有什么意义?它们如何影响我的SELECT查询结果?
我想在贝里夫知道的是:
用于以下各项的排序规则:
你混淆了编码和整理。
可用字符由编码(且仅由编码)定义。由于 UTF-8 是与 Unicode 兼容的编码,因此您拥有所有字符。MySQL 的特点是它的utf8编码并没有真正实现 UTF-8,而只是一个子集,因为它为每个字符分配 3 个字节,并且(截至今天)一些字符需要 4 个字节。就这样utf8mb4诞生了。
整理是一组规则,告诉您如何WHERE foo = bar和ORDER BY foo工作。你需要问自己:如果我搜索internet,它应该匹配Internet吗?如果您存储法语、德语和拉丁语单词,您很可能不需要二进制排序规则。理想情况下,您需要一个具有您将使用的语言的确切规则的规则,但是,由于您正在混合语言,因此您必须选择通用归类。您可以在阅读utf8mb4_unicode_ci 和 utf8mb4_unicode_520_ci 排序规则之间的差异后做出明智的决定。
| 归档时间: |
|
| 查看次数: |
6691 次 |
| 最近记录: |