MySQL的字符集与字符排序规则
- 字符集
规定存储的数据编码格式。 - 字符排序规则
在规定的存储的数据编码格式下的比较规则,如区分不区分大小写等
以前开发中常使用的MySQL字符集是utf8
,字符排序规则是utf8_general_ci
说明:
-
常见的字符集有
utf8
和utf8mb4
两种,在MySQL中utf8
编码最多支持3字节的数据,utf8mb4
最多支持4个字节的数据,移动端的表情数据是4个字节的字符,所以必须使用utf8mb4
格式才能正确的存储. -
常见的字符排序规则有
utf_bin
和utf_general_ci
两种,bin 是二进制, a 和 A 会别区别对待.例如你运行:select * from table where a = 'a';
那么在utf8_bin
中你就找不到 a = ‘A’ 的那一行, 而utf8_general_ci
则可以.utf8_general_ci
校对速度快,但准确度稍差。(准确度够用,一般建库选择这个
)
现在的说法是 为了获取更好的兼容性,应该总是使用 utf8mb4
而非 utf8
. 对于 CHAR 类型数据,utf8mb4 会多消耗一些空间,根据 Mysql 官方建议,使用VARCHAR
替代CHAR
。
查看当前MySQL的字符集与字符排序规则
\s
简单的查看MySQL的字符集
SHOW VARIABLES LIKE'%char%'
详细单的查看MySQL的字符集