一文彻底弄懂MySQL的字符集和排序规则

引言

在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不区分大小写, 校对速度快。

参考文档

ASCII字符集、Unicode字符集下UTF-8 和UTF-16编码、GBK(GB2312)字符集
MySQL字符集详解
MySQL 排序规则简介

  • 11
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值