Mysql中的排序规则utf8_unicode_ci、utf8_general_ci总结
Mysql中utf8_general_ci与utf8_unicode_ci有什么区别呢?在编程语⾔中,通常⽤unicode对中⽂字符做处理,防⽌出现乱码,那么在MySQL⾥,为什么⼤家都使⽤utf8_general_ci⽽不是utf8_unicode_ci呢?
疫情防控手抄报ci是 ca innsitive, 即 "⼤⼩写不敏感", a 和 A 会在字符判断中会被当做⼀样的;
COLLATE是校对集的意思,可以理解为,排序规则 ;
utf8_general_ci 不区分⼤⼩写,这个你在注册⽤户名和邮箱的时候就要使⽤。
utf8_general_cs 区分⼤⼩写,如果⽤户名和邮箱⽤这个就会照成不良后果
小猪英文
utf8_bin:字符串每个字符串⽤⼆进制数据编译存储。区分⼤⼩写,⽽且可以存⼆进制的内容
中⽂⼿册中关于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,因为它⽐较准确。
苹果8什么时候上市总结:
utf8_unicode_ci和utf8_general_ci对中、英⽂来说没有实质的差别。
utf8_general_ci校对速度快,但准确度稍差。
utf8_unicode_ci准确度⾼,但校对速度稍慢。
如果你的应⽤有德语、法语或者俄语,请⼀定使⽤utf8_unicode_ci。⼀般⽤utf8_general_ci就够了
连接数据库客户端: