(6)mysql 中的字符集

概述

  从本质上来说,计算机只识别二进制代码,所以,不论计算机程序仍是其处理的数据,最终都必须转化为二进制码,计算机才能识别。人们给每个文字符号编码以便计算机识别处理,这就是计算机字符集的由来。mysql

选择合适的字符集

MySQL5.6支持几十种字符集,包括UCS-二、UTF-1六、UTF-16LE、UTF-3二、UTF-八、utf8mb4等Unicode字符集,选择字符集能够考虑以下几个因素:sql

  1. 知足应用支持语言需求,若是应用须要处理各式各样的文字,应该选择Unicode编码,对于MySQL,建议为UTF-8;
  2. 若是应用中涉及已有数据导入,要充分考虑数据库字符集对已有数据的兼容性。
  3. 若是数据库只须要支持通常中文,数据量大,性能要求较高,那能够选择双字节定长编码的中文字符集,好比GBK,由于相对于UTF-8,GBK比较小,每一个汉字只占2个字节,utf-8汉字须要3个字节;相反,若是主要处理英文字符,选择UTF-8更好,由于GBK,UCS-2,UTF-16中的西文字符编码都是2个字节。
  4. 若是数据库须要作大量的字符运算,选择定长字符集更好一些。
  5. 若是全部的客户端程序都支持相同的字符集,则优先选择该字符集做为数据库的字符集。

经常使用字符集比较:
数据库

字符集比较

MySQL字符集

  1. MySQL支持在同一台服务器,同一个数据库,甚至同一个表的不一样字段均可以使用不一样的字符集。
  2. MySQL字符集包括字符集校对规则;其中字符集用来定义MySQL存储字符串的方式,校对规则用来定义字符串比较方式,字符集与校对规则是一对多的关系。
  3. MySQL有4个级别的默认设置:服务器级,数据库级,表级,字段级。服务器级能够在MySQL配置文件(my.cnf)中设置character-set-server=utf-8;其余是建立时候设置。
  4. 对于实际应用中, 还存在客户端和服务器之间的字符集和校对规则设置。MySQL提供3个参数设置:character_set_clientcharacter_set_connectioncharacter_set_results分别表明客户端、链接、返回结果的字符集。一般不会单独设置这3个参数,能够经过命令:set names ***来设置,还能够设置my.cnf中的default-character-set=utf-8来设置。

MySQL字符集系统变量含义以下:服务器

mysql字符集系统变量
相关文章
相关标签/搜索