本文来源:https://blog.youkuaiyun.com/qq_38224812/article/details/80745868
1、字符集说明
一般选择utf8。下面介绍下utf8和utf8mb4的区别。
utf8mb4兼容utf8,且比uft8表示更多的字符。至于什么时候用,看你做什么项目。到http://blog.youkuaiyun.com/leelyliu/article/details/52879685看unicode编码区从1 ~ 126就属于传统utf8区,当然utf8mb4也兼容这个区,126行以下就是utf8mb4扩充区,什么时候你需要存储那些字符,你才用utf8mb4,否则只是浪费空间。
2、排序规则说明
排序一般分两种,utf8_bin和utf8_general_ci。
bin是二进制,'A'和'a'会区别对待。
例如你运行:
SELECT * FROM table WHERE txt = 'a'
那么在utf8_bin中你得不到 txt = 'A' 的那一行,而utf8_general_ci则可以。
utf8_general_ci不区分大小写,这个你在注册用户名和邮箱的时候就要用到。
utf8_bin:字符串每个字符串用二进制数据编译存储。 区分大小写,而且可以存二进制的内容。
utf8_unicode_ci和utf8_general_ci对中、英文来说没有实质的差别。
utf8_general_ci校对速度快,但准确度稍差。(准确度够用,一般建库选择这个)
utf8_unicode_ci准确度高,但校对速度稍慢。