Mysql的utf8与utf8mb4区别,utf8mb4_bin、utf8mb4_general_ci、utf8mb4_unicode_ci区别
UTF-8是使用1~4个字节,一种变长的编码格式,字符编码。mb4即 most bytes 4,使用4个字节来表示完整的UTF-8。
mysql的 utf8 编码最大字符长度为 3 字节,如果遇到 4 字节的宽字符就会插入异常了。三个字节的 UTF-8 最大能编码的 Unicode 字符是 0xffff,也就是 Unicode 中的基本多文种平面(BMP)。也就是说,任何不在基本多文本平面的 Unicode字符,都无法使用 Mysql 的 utf8 字符集存储。包括 Emoji 表情(Emoji 是一种特殊的 Unicode 编码,常见于 ios 和 android 手机上),和很多不常用的汉字,以及任何新增的 Unicode 字符等等。
总结:MySQL的utf8是utfmb3,只有三个字节,节省空间但不能表达全部的UTF-8。所以推荐使用utf8mb4。
utf8mb4_bin:将字符串每个字符用二进制数据编译存储,区分大小写,而且可以存二进制的内容。
utf8mb4_general_ci:ci即case insensitive,不区分大小写。没有实现Unicode排序规则,在遇到某些特殊语言或者字符集,排序结果可能不一致。但是,在绝大多数情况下,这些特殊字符的顺序并不需要那么精确。
utf8mb4_unicode_ci:是基于标准的Unicode来排序和比较,能够在各种语言之间精确排序,Unicode排序规则为了能够处理特殊字符的情况,实现了略微复杂的排序算法。
utf8mb4_general_ci是一个遗留的 校对规则,不支持扩展,它仅能够在字符之间进行逐个比较。utf8_general_ci校对规则进行的比较速度很快,但是与使用 utf8mb4_unicode_ci的校对规则相比,比较正确性较差。
总结:general_ci 更快,unicode_ci 更准确。但相比现在的CPU来说,它远远不足以成为考虑性能的因素,索引涉及、SQL设计才是。使用者更应该关心字符集与排序规则在db里需要统一。(可能产生乱码的字段不要作为主键或唯一索引。例如:以 url 来作为唯一索引,但是它记录的有可能是乱码。)
Mysql的utf8与utf8mb4区别,utf8mb4_bin、utf8mb4_general_ci、utf8mb4_unicode_ci区别相关推荐
- 【Mysql】utf8与utf8mb4区别,utf8mb4_bin、utf8mb4_general_ci、utf8mb4_unicode_ci区别
一.utf8与utf8mb4区别 UTF8 UTF8mb4 使用1~4个字节,变长的编码格式 mb4即 most bytes 4,使用4个字节来表示完整的UTF-8 最大字符长度为 3 字节,如果遇到 ...
- mysql中utf8和utf8mb4的详解用法与区别
一.简介 MySQL在5.5.3之后增加了这个utf8mb4的编码,mb4就是most bytes 4的意思,专门用来兼容四字节的unicode.好在utf8mb4是utf8的超集,除了将编码改为ut ...
- 全面了解mysql中utf8和utf8mb4的区别
一.简介 MySQL在5.5.3之后增加了这个utf8mb4的编码,mb4就是most bytes 4的意思,专门用来兼容四字节的unicode.好在utf8mb4是utf8的超集,除了将编码改为ut ...
- MySQL的utf8与utf8mb4编码,以及utf8_bin、utf8_general_ci编码区别
utf8和utf8mb4的区别 一.简介 MySQL在5.5.3之后增加了这个utf8mb4的编码,mb4就是most bytes 4的意思,专门用来兼容四字节的unicode.utf8mb4是utf ...
- MySQL中 utf8 和 utf8mb4 的区别,以及 general_ci 、unicode_ci和unicode_520_ci的区别
首先了解什么是Unicode: Unicode是一种信息技术(IT)标准,用于对世界上大多数书写系统中表示的文本进行一致的编码,表示和处理. 大致意思就是Unicode对英文字符.符号.汉字.表情符号 ...
- mysql字符集 utf8 和utf8mb4 的区别
文章目录 @[toc] 总结速览 什么是编码?什么是 UTF-8? mysql中的utf8与utf8mb4 为什么使用utf8mb4 总结 最后 用mysql创建数据库表时,一般都会选择用utf-8编 ...
- 浅谈MySQL中utf8和utf8mb4的区别
一.什么是UTF8MB4? 我们在使用PhpMyAdmin管理面板时,可以在首页看到名为"Server connection collation"(服务器连接排序规则)的选项,用来 ...
- 清官谈mysql中utf8和utf8mb4区别,请使用utf8mb4
一.简介 MySQL在5.5.3之后增加了这个utf8mb4的编码,mb4就是most bytes 4的意思,专门用来兼容四字节的unicode.好在utf8mb4是utf8的超集,除了将编码改为ut ...
- 清官谈mysql中utf8和utf8mb4区别
转载地址: http://ourmysql.com/archives/1402 utf8mb4可以保存一些表情,然后utf8mb4是utf8的超集,我就记住这些哈下面转载内容 一.简介 MySQL在5 ...
最新文章
- Go -- 多个go文件包名都是main
- 数据结构与算法分析-第2章
- 51nod 1536不一样的猜数游戏 思路:O(n)素数筛选法。同Codeforces 576A Vasya and Petya‘s Game。
- pytorch中resnet_ResNet代码详解
- 学习笔记~~~~~Set接口实现
- BZOJ1607 [Usaco2008 Dec]Patting Heads 轻拍牛头 筛法
- 软考信息系统项目管理师_信息系统项目管理基础---软考高级之信息系统项目管理师008
- c语言机器人跑三角形图形,一种三角形物件运输机器人的制作方法
- Noob 靶场渗透记录
- 五光十色变色龙的制作
- 初识智遥工作流软件——表单开发篇2
- 5G差异化业务场景需求及网络切片(1)
- 面试中如何回答“你的缺点是什么?”
- 简单的tcpdump抓包使用总结:抓取指定ip、指定网卡、指定端口的包
- 图片无缝滚动BootStrap 轻松实现
- css实现六边形及其它灵活布局
- 校招经验 | 三无菜鸡水硕如何拿到多个高薪offer?
- IBPS平台应用于南方电网总部运营管控平台
- 鞍山市2021中高考成绩查询,2021年鞍山高中学校排名及录取分数线排名
- 肖特基二极管的这几点技术参数,你未必全都知道