MYSQL-utf8 COLLATE排序相关字符集

本文介绍了MYSQL中utf8(实际为utf8mb3)和utf8mb4字符集的区别,utf8mb4_bin、utf8mb4_general_ci、utf8mb4_unicode_ci的排序特性。utf8节省空间但无法存储所有UTF-8字符,推荐使用utf8mb4。utf8mb4_bin存储为二进制并区分大小写,utf8mb4_general_ci和utf8mb4_unicode_ci分别在速度和准确性上权衡排序,前者更快但不完全符合Unicode排序,后者更准确。选择时需关注字符集统一以避免乱码问题。
摘要由CSDN通过智能技术生成

前言

MYSQL中关于utf8 COLLATE排序相关的字符集有不少,utf8、utf8mb4_bin、utf8mb4_general_ci、utf8mb4_unicode_ci,下面来说说它们的区别。


utf8

MYSQL中的utf8其实是utf8mb3,最大字符长度为3字节,如果遇到4字节的宽字符插入就会异常

最大为3字节的utf8字符集能编码的最大unicode字符是0xffff,即unicode编码中的基本多文种平面(BMP)编码区段。也就是说,任何不在unicode字符集基本多文种平面(BMP)编码区段的字符,都无法使用MYSQL的utf8字符集,包括Emoji表情(Emoji 是一种特殊的 unicode 编码,常见于 ios 和 android 手机上)、很多不常用的汉字和任何新增的unicode字符等。

总结:优点是节省空间,但是不能表达全部的utf8字符,推荐使用utf8mb4


utf8mb4_bin

mb4即 most bytes 4,最多使用4个字节表示字符,能够表示全部的unicode字符

bin表示将字符串每个字符用二进制数据编译存储,区分大小写,可以存二进制内容


utf8mb4_general_ci

ci即 case insensitiveÿ

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值