首页 > 数据库 >mysql collation 校对规则 utf8_general_ci 与 utf8_unicode_ci的区别

mysql collation 校对规则 utf8_general_ci 与 utf8_unicode_ci的区别

时间:2023-06-28 14:36:03浏览次数:40  
标签:字符 ci utf8 xxx general unicode mysql


援引官方文档 Mysql document

For any Unicode character set, operations performed using the xxx_general_ci collation are faster than those for the xxx_unicode_ci collation. For example, comparisons for the utf8_general_ci collation are faster, but slightly less correct, than comparisons for utf8_unicode_ci. The reason for this is that utf8_unicode_ci supports mappings such as expansions; that is, when one character compares as equal to combinations of other characters. For example, in German and some other languages “ß” is equal to “ss”. utf8_unicode_ci also supports contractions and ignorable characters.utf8_general_ci is a legacy collation that does not support expansions, contractions, or ignorable characters. It can make only one-to-one comparisons between characters.

译文

对于任何unicode字符,xxx_general_ci比xxx_unicode_ci速度快。因为xxx_unicode_ci支持类似扩展的映射。扩展的意思是一个字符等于多个字符的组合。比如在德语中,ß等于ss。xxx_unicode_ci也支持收缩和可忽视字符。xxx_general_ci是传统的校对规则,它不支持扩展、收缩、可忽视字符。它只会一个字符一个字符的比较

总结

综上所述,xx_unicode_ci实现了unicode标准,支持扩展、可忽视字符等,由于准确性高,所以速度“相对慢”,不过根据现有cpu的性能,已经感觉不出“相对慢”。

xx_general_ci相对古老,是utf8的默认校对规则,由于不是那么准确,所以速度快。由于是utf8的默认校对规则,所以,我们推荐使用这种校对规则,在开发中,会省去很多麻烦。

参考

击打开链接

点击打开链接

标签:字符,ci,utf8,xxx,general,unicode,mysql
From: https://blog.51cto.com/u_15561616/6571874

相关文章

  • mysql workbench 快捷键
    mysqlworkbench常用快捷键新建tab(newtab)ctrl+t执行当前语句(executecurrentstatement)ctrl+enter执行全部或选中的语句(executeallorselection)ctrl+shift+enter查看执行计划(explaincurrentstatement)ctrl+alt+x注释--加空格,如–select*fromt;以上快捷......
  • 使用 SQLAlchemy 库来实现对 MySQL 数据库的增删改查
    在 Flask 中使用SQLAlchemy库来实现对MySQL数据库的增删改查fromflaskimportFlask,request,jsonifyfromflask_sqlalchemyimportSQLAlchemyapp=Flask(__name__)app.config['SQLALCHEMY_DATABASE_URI']='mysql://username:password@localhost/dbname'ap......
  • scilab点乘
    -->A=[10;01]A=1.0.0.1.-->B=[23;45]B=2.3.4.5.-->B*Aans=2.3.4.5.-->B.*Aans=2.......
  • ASCII = American Standard Code for Information Interchange
    Textonly语言:Ascii码表(全)ASCIITable(7-bit)(ASCII=AmericanStandardCodeforInformationInterchange) Decimal  Octal  Hex  Binary     Value-------  -----  ---  ------     ----- 000     000   00  00000000......
  • Scilab的内定常数
    Scilab的内定常数多半以'%'开头,例如圆周率π,它以'%pi'来表示。自然常数e:%e。虚数i:%i。如对这些常数重新宣告会出现错误讯息。-->x=3;a2=15a2=15.-->%e%e=2.7182818-->%i%i=i-->sq......
  • mysql系列基础篇03----约束
    一、概述1、概念:约束是作用于表中字段上的规则,用于限制存储在表中的数据2、目的:保证数据库中数据的正确,有效性和完整性。3、分类  二、约束演示创建一个用户表createtablemyuser(idintprimarykeyauto_incrementcomment'主键',namevarchar(10)notnulluniq......
  • (转载)Mysql里的锁(排它锁、共享锁、行锁、表锁、间隙锁、临键锁、意向锁)
    转载自:Mysql里的锁(排它锁、共享锁、行锁、表锁、间隙锁、临键锁、意向锁)一、加锁的目的是什么?在我们了解数据库锁之前,首先我们必须要明白加锁的目的是为了解决什么问题,如果你还不清楚的话,那么从现在起你应该知道,数据库的锁是为了解决事务的隔离性问题,为了让事务之间相互不影......
  • G1垃圾回收参数调优及MySQL虚引用造成GC时间过长分析 | 京东云技术团队
    1.背景我方有一应用,偶尔会出现GC时间过长(间隔约4小时),导致性能波动的问题(接口最长需要耗时3秒以上)。经排查为G1垃圾回收器参数配置不当叠加MySQL链接超过闲置时间回收,产生大量的虚引用,导致G1在执行老年代混合GC,标记阶段耗时过长导致。以下为对此问题的分析及问题总结。此外,此......
  • mysql系列基础篇01---通用的语法及分类
    通用语法及分类DDL:数据定义语言,用来定义数据库对象(数据库、表、字段)DML:数据操作语言,用来对数据库表中的数据进行增删改DQL:数据查询语言,用来查询数据库中表的记录DCL:数据控制语言,用来创建数据库用户、控制数据库的控制权限一、DDL(数据定义语言)1、数据库操作1.1创......
  • 如何解析和读取mysql binlog
    要解析和读取MySQL的二进制日志(binlog),可以使用一些工具和方法。MySQL官方提供的工具:MySQL自带了一个名为mysqlbinlog的命令行工具,可以用于解析和读取二进制日志。通过执行以下命令,您可以查看二进制日志的内容:mysqlbinlog[options][binlog_files]options是......