MySQL字符集 utf8 和 utf8mb4 区别及排序规则 general_ci 和 unicode_ci 和 bin 的区别

先说字符集
utf8mb4说明:MySQL在5.5.3之后增加了这个utf8mb4的编码,mb4就是most bytes 4的意思,专门用来兼容四字节的unicode。好在utf8mb4是utf8的超集,除了将编码改为utf8mb4外不需要做其他转换。当然,为了节省空间,一般情况下使用utf8也就够了。

utf8:
    1.最大字符长度为 3 字节,如果遇到 4 字节的字符就会出现错误了。
    2.无法存贮表情和不常用汉字
    3.消耗空间比utf8mb4少

utf8mb4:
    1.最大字符长度为4字节
    2.对于 CHAR 类型数据,存储会多消耗一些空间。
    3.多了表情的支持

 alter table ttttttttt1 convert to charset utf8mb4;    

排序规则
后缀:
ci  :不区分大小写
bin :区分大小写
 
general_ci:不支持扩展,准确性相对于Unicode_ci来说要低一点,速度快于Unicode_ci
unicode_ci:支持扩展,准确性高于general_ci,速度慢于general_ci