下面摘录一下Mysql 5.1中文手册中关于utf8_unicode_ci与utf8_general_ci的说明:
当前,utf8_unicode_ci校对规则仅部分支持Unicode校对规则算法。一些字符还是不能支持。并且,不能完全支持组合的记号。这主要影响越南和俄罗斯的一些少数民族语言,如:Udmurt 、Tatar、Bashkir和Mari。
utf8_unicode_ci的最主要的特色是支持扩展,即当把一个字母看作与其它字母组合相等时。例如,在德语和一些其它语言中‘ß'等于‘ss'。
utf8_general_ci是一个遗留的 校对规则,不支持扩展。它仅能够在字符之间进行逐个比较。这意味着utf8_general_ci校对规则进行的比较速度很快,但是与使用utf8_unicode_ci的 校对规则相比,比较正确性较差)。
例如,使用utf8_general_ci和utf8_unicode_ci两种 校对规则下面的比较相等:
Ä = A
Ö = O
Ü = U
两种校对规则之间的区别是,对于utf8_general_ci下面的等式成立:
ß = s
但是,对于utf8_unicode_ci下面等式成立:
ß = ss
对于一种语言仅当使用utf8_unicode_ci排序做的不好时,才执行与具体语言相关的utf8字符集 校对规则。例如,对于德语和法语,utf8_unicode_ci工作的很好,因此不再需要为这两种语言创建特殊的utf8校对规则。
utf8_general_ci也适用与德语和法语,除了‘ß'等于‘s',而不是‘ss'之外。如果你的应用能够接受这些,那么应该使用utf8_general_ci,因为它速度快。否则,使用utf8_unicode_ci,因为它比较准确。
Mysql中校对集utf8_unicode_ci与utf8_general_ci的区别说明
2019-12-01 15:48MYSQL教程网 Mysql
一直对utf8_unicode_ci与utf8_general_ci这2个校对集很迷惑,今天查了手册有了点眉目。不过对中文字符集来说采用utf8_unicode_ci与utf8_general_ci时有何区别还是不清楚
延伸 · 阅读
- 2019-12-01对于mysql的query_cache认识的误区
- 2019-12-01mysql数据库互为主从配置方法分享
- 2019-12-01利用mysql的inet_aton()和inet_ntoa()函数存储IP地址的方
- 2019-12-01MySql 备忘录
- 2019-12-01深入Mysql字符集设置分析
- 2019-12-01mysql服务1067错误多种解决方案分享
精彩推荐
- Mysql
Mysql如何避免全表扫描的方法
如果MySQL需要做一次全表扫描来处理查询时,在 EXPLAIN 的结果中 type 字段的值是 ALL。 ...
- Mysql
MySQL数据库的出错代码列表
MySQL数据库的出错代码列表 ...
- Mysql
MYSQL配置参数优化详解
MySQL是优化难度最大的一个部分,不但需要理解一些MySQL专业知识,同时还需要长时间的观察统计并且根据经验 进行判断,然后设置合理的参数。下面我们...
- Mysql
MySQL查询重复数据(删除重复数据保留id最小的一条为唯一数据)
查重是我们在工作中经常会遇到的一个需求,下面这篇文章主要给大家介绍了关于MySQL查询重复数据(删除重复数据保留id最小的一条为唯一数据)的相关资...
- Mysql
MySQL不支持InnoDB的解决方法
在OpenSUSE下装上MySQL后,发现无法选择添加事务支持数据引擎InnoDB。 ...
- Mysql
利用mysql的inet_aton()和inet_ntoa()函数存储IP地址的方法分享
当前很多应用都适用字符串char(15)来存储IP地址(占用16个字节),利用inet_aton()和inet_ntoa()函数,来存储IP地址效率很高,适用unsigned int 就可以满足需求,不...
- Mysql
MySQL 8.0.13设置日期为0000-00-00 00:00:00时出现的问题解决
这篇文章主要介绍了MySQL 8.0.13设置日期为0000-00-00 00:00:00时出现的问题解决,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看...
- Mysql
MySQL对于各种锁的概念理解
今天小编就为大家分享一篇关于MySQL对于各种锁的概念理解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来...