平时的开发过程中,我们新建数据库的时候,经常会让我们选择「字符集」和「排序规则」,那这两者该怎么去选呢?本文来个详细介绍。
字符集
字符集有很多的选择,一般选择"utf-8
"。来介绍下"utf-8
“与”utf-8mb4
"的区别:
utf8mb4
兼容utf8
,且比utf8
能表示更多的字符(至于什么时候用,看你的做什么项目)。unicode
编码区从1 ~ 126就属于传统utf8
区,当然utf8mb4
也兼容这个区,126行以下就是utf8mb4扩充区(什么时候你需要存储那些字符,你才用utf8mb4,否则只是浪费空间)。
排序规则
排序一般分为两种:utf_bin
和utf_general_ci
,bin 是二进制, a 和 A 会别区别对待,例如运行:
SELECT * FROM table WHERE txt = 'a'
那么在utf8_bin
中你就找不到 txt = ‘A’ 的那一行, 而utf8_general_ci
则可以。
utf8_general_ci
不区分大小写,这个你在注册用户名和邮箱的时候就要使用。utf8_general_cs
区分大小写,如果用户名和邮箱用这个就会照成不良后果utf8_bin
:字符串每个字符串用二进制数据编译存储。 区分大小写,而且可以存二进制的内容utf8_unicode_ci
和utf8_general_ci
对中、英文来说没有实质的差别。utf8_general_ci
校对速度快,但准确度稍差。(准确度够用,一般建库选择这个)utf8_unicode_ci
准确度高,但校对速度稍慢。
总结
如果是常规的项目,没什么特殊要求,建议项目选择字符集选择「utf-8
」,排序规则选择「utf8_general_ci
」。