选择字符集时考虑的因素:
(1)满足应用支持语言的需求,如果应用要处理各种各样的文字,或者将发布到使用不同语言的国家或地区,就应该选择Unicode 字符集。对MySQL 来说,目前就是UTF-8。
(2)如果应用中涉及已有数据的导入,就要充分考虑数据库字符集对已有数据的兼容
性。假如已有数据是GBK 文字,如果选择GB2312-80 为数据库字符集,就很可能出现某些
文字无法正确导入的问题。
(3)如果数据库只需要支持一般中文,数据量很大,性能要求也很高,那就应该选择
双字节定长编码的中文字符集,比如GBK。因为,相对于UTF-8 而言,GBK 比较“小”,每
个汉字只占2 个字节,而UTF-8 汉字编码需要3 个字节,这样可以减少磁盘I/O、数据库cache,
以及网络传输的时间,从而提高性能。相反,如果应用主要处理英文字符,仅有少量汉字数
据,那么选择UTF-8 更好,因为GBK、UCS-2、UTF-16 的西文字符编码都是2 个字节,会造成
很大不必要的开销。
(4)如果数据库需要做大量的字符运算,如比较、排序等,选择定长字符集可能更好,
因为定长字符集的处理速度要比变长字符集的处理速度快。
(5)如果所有客户端程序都支持相同的字符集,应该优先选择该字符集作为数据库字
符集。这样可以避免因字符集转换带来的性能开销和数据损失。