一、
怎样选择合适的字符集
对MySQL数据库来说,字符集很重要,因为数据库存储的数据大部分都是各种文字,字符集对数据库的存储,处理性能都会有所影响。
主要考虑一下几方面的因素
1.满足应用支持语言的需求,应用处理各种各样的文字,发布到使用不同语言的国家或地区,可以选择Unicode字符集,MySQL的话可以选择UTF-8
2.如果应用中涉及已有数据的导入,就要充分考虑数据库字符集对已有数据的兼容性。
假设数据是GBK文字,如果选择其他数据库字符集,就可能导致某些文字无法正确导入的问题。
3.如果数据库需要支持一般是中文,数据量很大,性能要求也很高,可以选择双字节定长编码的中文字符集,比如GBK。
因为相对于UTF-8而言,GBK比较小,每个汉字只占用2个字节,而UTF-8汉字编码需要3个字节,这样可以减少磁盘I/O,数据库缓存,已经网络传输的时间,从而提高性能。
如果是英文字符,仅有少量汉字字符,那么选择UTF-8更好。
4.如果数据库需要做大量的字符运算,如比较、排序,那么选择定长字符集可能会更好,因为定长字符集的处理速度比变长的快。
二、MySQL支持的字符集
MySQL服务器可以支持多种字符集,在同一台服务器,同一个数据库,同一个表都可以指定不同的字符集。
查看所有可用字符集的命令 show character set;
例如MySQL5.7支持41种可以用字符集
mysql> show character