一文彻底弄懂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 排序规则简介

相关推荐

  1. 彻底MySQL字符集排序规则

    2024-03-20 00:50:03       21 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-20 00:50:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-20 00:50:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-20 00:50:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-20 00:50:03       20 阅读

热门阅读

  1. python的封装应用

    2024-03-20 00:50:03       22 阅读
  2. BFS模板

    2024-03-20 00:50:03       19 阅读
  3. 蓝桥杯day2刷题日记

    2024-03-20 00:50:03       20 阅读
  4. 安卓UI面试题 41-45

    2024-03-20 00:50:03       18 阅读
  5. 遍历list过程中调用remove方法

    2024-03-20 00:50:03       20 阅读
  6. IOS面试题object-c 116-120

    2024-03-20 00:50:03       22 阅读
  7. ZCC5429 异步升压芯片

    2024-03-20 00:50:03       21 阅读