"MySQL中的utf8_unicode_ci和utf8_general_ci的区别?"

MySQL中的utf8_unicode_ci和utf8_general_ci的区别?

utf8_unicode_ci和utf8_general_ci对中、英文来说没有实质的差别。
utf8_general_ci 校对速度快,但准确度稍差。
utf8_unicode_ci 准确度高,但校对速度稍慢。

如果你的应用有德语、法语或者俄语,请一定使用utf8_unicode_ci。一般用utf8_general_ci就够了。

  • ci是 case insensitive, 即大小写不敏感, a 和 A 会在字符判断中会被当做一样的
  • cs是 case sensitive,即大小写敏感
  • bin 是二进制, a 和 A 会别区别对待

例如你运行:

SELECT * FROM article WHERE keyword = 'a'

那么在utf8_bin中你就找不到 keyword='A' 的那一行, 而 utf8_general_ci 则可以。

  • utf8_general_ci 不区分大小写,这个你在注册用户名和邮箱的时候就要使用。
  • utf8_general_cs 区分大小写,如果用户名和邮箱用这个 就会造成不良后果
  • utf8_bin:字符串每个字符串用二进制数据编译存储。 区分大小写,而且可以存二进制的内容
PS:写作不易,如要转裁,请标明转载出处。
登录
注册
回顶部