MySQL 中 character set 与 collation 的理解
出处:https://www.cnblogs.com/EasonJim/p/8128196.html- 推荐:
- 编码使用 uft8mb4,不使用 utf8(utf8会有一些问题)
- utf8_general_ci 与 utf8_unicode_ci 区别
- utf8_unicode_ci 和 utf8_general_ci,对中文、英文来说没有实质的差别,用 utf8_general_ci 就可以(因为:utf8_general_ci 比对速度快)
- utf8_general_ci 比对速度快,但准确度稍差。
- utf8_unicode_ci 准确度高,但比对速度稍慢。
- 如果你的应用有德语、法语或者俄语,请一定使用 utf8_unicode_ci。一般用 utf8_general_ci 就够了
- MySQL 8.0 默认的是 utf8mb4_0900_ai_ci,属于 utf8mb4_unicode_ci 中的一种,具体含义如下:
- uft8mb4 表示用 UTF-8 编码方案,每个字符最多占4个字节。
- 0900 指的是 Unicode 校对算法版本。(Unicode归类算法是用于比较符合Unicode标准要求的两个Unicode字符串的方法)。
- ai指的是口音不敏感。也就是说,排序时e,è,é,ê和ë之间没有区别。
- ci表示不区分大小写。也就是说,排序时p和P之间没有区别。
- 如果需要口音敏感和区分大小写,则可以使用 utf8mb4_0900_as_cs 代替。
utf8mb4 已成为默认字符集,在MySQL 8.0.1及更高版本中将 utf8mb4_0900_ai_ci 作为默认排序规则。以前,utf8mb4_general_ci 是默认排序规则。由于 utf8mb4_0900_ai_ci 排序规则现在是默认排序规则,因此默认情况下新表格可以存储基本多语言平面之外的字符。现在可以默认存储表情符号。
---------------------
原文:https://blog.csdn.net/kikajack/article/details/84668924