麒麟v10 上部署 TiDB v5.1.2 生产环境优化实践
968
2023-04-20
Mysql建库字符集和排序规则及说明
概述
我们在使用mysql的时候,尤其是在创建数据库的时候,我们需要选择当前数据库的字符集和排序规则,这样你库里面的创建数据表的时候默认的编码方式就是库选择好的。
我们这里旧按照navicat创建数据库的来说。(主要讲述中国的使用习惯)
由于汉字的特殊性,数量多等原因,我们一般在写代码或者写其它文档的时候都是选择***UTF-8***的编码方式,所以我们创建数据库的时候一般是选择UTF-8.但是我们可以看到数据床架的时候,字符集的选择有:utf8 以及 utf8mb4 这两种方式。
那么两种因该是选择哪一种呢,下面稍后看我给你吹(一般是utf8mb4)。
字符集选择结束之后我们还需要选择这个排序规则,我们都知道字符集是保存数据时候需要的编码方式,那么这个排序规则是干什么用的呢?
排序规则
是指对指定字符集下不同字符的比较规则。其特征有以下几点
1.两个不同的字符集不能有相同的排序规则 2.两个字符集有一个默认的排序规则 3.有一些常用的命名规则。如_ci结尾表示大小写不敏感(caseinsensitive),_cs表示大小写敏感(case sensitive),_bin表示二进制的比较(binary).
那么排序的规则应该怎么选择,也看下面我给你吹。
字符集的选择
概述中我们已经说了,在中国一般使用的编码方式大部分都是UTF-8,但是mysql的数据库中给出了两种选“utf8”,一个是“utf8mb4”。
根据查询资料得知mysql的“utf8”并不是我们常见到的UTF-8,反而“utf8mb4”是我们常用的UTF-8。
为什么会这样呢?
根据查询得知MYSQL中的“utf8”编码只支持每个字符最大3个字节的编码方式,而我们通常使用的UTF-8是每个字符最大4个字节的编码方式。
这个问题在我们中国看来就是一个bug,但是MYSQL并没有对这个bug进行修复,而是在2010年增加了一个新的字符集“utf8mb4”,这个才对应了我们常使用的UTF-8。
所以在我们这边,尤其是存储汉字的时候,需要使用的编码方式是“utf8mb4”。
?
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。