第27章 字符集设置

设置 字符集支持:




这个章节描述在使用字符集设置支持的管理因素 ,它覆盖了下面的几个主题:






1.配置server使用唯一的字符集供你的安装需要




2.选择数据类型用于列的存储需要和性能考虑






27.1 性能问题








通过字符设置来降低磁盘空间数量和server运行的内存使用,不要选择不需要的字符集设置




当你配置MYSQL的时候。这个需要你编译MYSQL源代码 相比使用预编译的2进制文件。






查看那些字符集是可用的,可以调用configure --help选项




27.2  选择数据类型用于字符列






当你创建的表有字符串列用于存储字符数据,考虑使用哪种类型的数据和字符集设置会最小化存储 比如disk I/O.






它存储字符串值所有的有相同的程序,使用固定长度的类型相比可变长度类型。






存储32字符串长度的列,CHAR(32) 需要32个字符, VARCHAR(32)需要32个字符,加上额外的字节存储长度。




在这种情况下,VARCHAR 相比CHAR至少多一个字节。




另一方面,如果存储的值长度不一,可变的数据类型占用更少的空间。




如果值得范围从0到32 字符 平均是16个字符,CHAR(32) 需要32个字符,


VARCHAR(32) 需要16个字符加上平均一个字节。 VARCHAR 只需要一半的存储相比CHAR。






对于多字节的字符设置 有可变长度的编码,一个可变长度的数据类型是合适的


尽管存储的值只有相同的数量的字节。UTF8 字符集使用一个字符占用3个字节。




对于固定长度的数据类型,3个字节一个字符必须被分配允许每个字符需要最宽的编码。




因此, CHAR(32) 需要96个字节,尽管很多存储的值包含32个单独字节的字符。




对于可变的数据类型,只有更多的存储被分许当需要的时候


在一个VARCHAR(32)列,一个32字符串有整个 3个字节的字符窜组成需要96个字节加上一个长度字节,


但是你需要32个字节加上一耳光长度字节如果字符窜有单字节的字符组成。




如果你有一个选择在多字节字符集,选择 最通用的字符集占用更少的空间。


比如, utf-8 和utc2 字符集都能用于存储万国码数据




在utf8中,字符集占用3个字节,但是大多数无重音的latin 字符集占据一个字节。




在ucs2,每个字符占用2个字节。









































































































原文地址:https://www.cnblogs.com/hzcya1995/p/13351772.html