数据库建库时字符集和排序规则的选择

引言
在MySQL新建一个数据库的时候,第一步就是要选择字符集和排序规则,那你是否真正懂得什么是字符集?什么是排序规则?在新建一个数据库的过程中,选择什么字符集和排序规则最适合?

什么是字符集?如何选择字符集?
字符集就是多个字符的集合,比如诗集里面就包含了诗,文集里面就包含了不同的文章,而不同的字符集里面就包含了不同的字符,也就能够支持存储不同类型的数据。
MySQL常用的字符集如下:

GBK:支持中文,但是不是国际通用字符集
UTF-8:支持中英文混合场景,是国际通用字符集
latin1:MySQL默认字符集
utf8mb4:完全兼容UTF-8,用四个字节存储更多的字符

如果只做国内业务,为了性能考虑可以选择GBK;
但哪个公司没有一个国际化的梦想,为了将来考虑,选择utf8mb4更合适,它能完全兼容UTF-8并且有其它优势。

什么是排序规则?如何选择排序规则?
排序规则是指定字符集下字符间的比较规则。
一些常用的命名规则如下:

_ci :结尾表示大小写不敏感 (caseinsensitive)
_cs :表示大小写敏感 (case sensitive)
_bin :表示二进制的比较 (binary)

常见字符集utf8mb4对应的常用排序规则如下:

utf8mb4_general_ci :不区分大小写, 校对速度快, 但准确度稍差。
utf8mb4_bin::字符串每个字符串用二进制数据编译存储。 区分大小写,而且可以存二进制的内容。
utf8mb4_unicode_ci:不区分大小写, 校准确度高,但校对速度稍慢。

通常情况下, 新建数据库时一般选用 utf8_general_ci 就可以了。

结论
新建数据库时,通常字符集可以选择utf8mb4,排序规则可以选择utf8_general_ci。
因为utf8mb4支持中文并且是国际通用字符集,而utf8_general_ci不区分大小写, 校对速度快。

posted @ 2024-09-13 16:29  左耳听风  阅读(116)  评论(0编辑  收藏  举报