https://dev.mysql.com/doc/relnotes/mysql/8.0/en/
新特性/改进 | 描述 |
---|---|
默认字符集变为utf8mb4 | 移动端有大量的表情符号需要存储,默认的字符集从 latin-1 转为 utf8mb4。 |
系统表存储引擎全部为InnoDB | 不再采用MyISAM。 |
DDL原子化 | 在MySQL 8.0之前,DDL操作是非原子型操作,在执行过程中遇到实例故障重启,可能导 致DDL没有完成也没有回滚。 |
持久化系统参数 | 可以用 SET PERSIST 来设置持久性的全局变量,即便服务器重启也会保持下来。 |
不可见索引 | 可以将一些索引设置为不可见,这样 SQL 优化器就不会用到它,但是它会继续在后台保持 更新。当有需要时,可以随时恢复可见。 不可见的索引可以测试删除索引对查询性能的影响,而无需进行破坏性的更改。 |
全新的身份认证方式 | 身份认证方式由以前的mysql_native_password改为caching_sha2_password。 |
通用表表达式 | 通用表表达式(CTE)是一个在语句级别定义的临时结果集。定义之后,可以在当前语句中 多次引用该 CTE。CTE有两种用法,非递归的CTE和递归的CTE。 |
窗口函数 | 类似于聚合函数,可降低代码复杂性并帮助开发人员提高工作效率。 |
JSON扩展 | 从版本5.7.8开始,MySQL开始支持JSON数据类型。 MySQL8.0新增了JSON_TABLE()函数,可以将JSON数据转换成表。 |
GIS增强 | GIS得到了增强,可支持地理和空间参考系统(SRS)。 |
文档存储 | 可以使用同一种解决方案处理 SQL 和 NoSQL,也可以将两种的优势结合起来。 |