MySQL新建数据库时utf8_general_ci编码

在编程语言中,通常用unicode对中文字符做处理,防止出现乱码,那么在MySQL里,为什么大家都使用utf8_general_ci而不是utf8_unicode_ci呢
MySQL新建数据库时utf8_general_ci编码

utf8_unicode_ci和utf8_general_ci对中英文来说没有实质的差别。
utf8_general_ci: 校对速度快,但准确度稍差。
utf8_unicode_ci: 准确度高,但校对速度稍慢。
若数据库中有德语、法语或者俄语需求,需使用utf8_unicode_ci。
其他情况用utf8_general_ci即可。

例如运行:
SELECT * FROM table WHERE txt = 'a'
那么在utf8_bin中你就找不到 txt = 'A' 的那一行, 而 utf8_general_ci 则可以.
utf8_general_ci 不区分大小写,这个你在注册用户名和邮箱的时候就要使用。
utf8_general_cs 区分大小写,如果用户名和邮箱用这个 就会照成不良后果
utf8_bin:字符串每个字符串用二进制数据编译存储。 区分大小写,而且可以存二进制的内容


Note:
ci是 case insensitive, 即 "大小写不敏感", a 和 A 会在字符判断中会被当做一样的。

bin 是二进制, a 和 A 会别区别对待.