MySQL:MySQL5.7与8.0的对⽐分析
1. 功能
NoSQL⽀持:
MySQL 从 5.7 版本开始提供 NoSQL 存储功能,在 8.0 版本中这部分功能也得到了更⼤的改进。
JSON:
MySQL 8 ⼤幅改进了对 JSON 的⽀持,添加了基于路径查询参数从 JSON 字段中抽取数据的 JSON_EXTRACT() 函数,以及⽤于将数据分别组合到 JSON 数组和对象中的 JSON_ARRAYAGG() 和 JSON_OBJECTAGG() 聚合函数。
窗⼝函数:
从 MySQL 8.0 开始,新增了⼀个叫窗⼝函数的概念,它可以⽤来实现若⼲新的查询⽅式。
窗⼝函数与 SUM()、COUNT() 这种集合函数类似,但它不会将多⾏查询结果合并为⼀⾏,⽽是将结果放回多⾏当中。即窗⼝函数不需要GROUP BY。
隐藏索引:
在 MySQL 8.0 中,索引可以被“隐藏”和“显⽰”。当对索引进⾏隐藏时,它不会被查询优化器所使⽤,我们可以使⽤这个特性⽤于性能调试。
在创建完索引后,我们先将其隐藏,然后观察其对数据库的影响。如果数据库性能有所下降,说明这个索引是有⽤的,然后将其“恢复显⽰”即可。如果数据库性能看不出变化,说明这个索引是多余的,可以考虑删掉。
降序索引:
MySQL 8.0 为索引提供按降序⽅式进⾏排序的⽀持,在这种索引中的值也会按降序的⽅式进⾏排序。
通⽤表表达式式(C om m on T ab le E x p r e s s ions C T E):
在复杂的查询中使⽤嵌⼊式表时,使⽤ CTE 使得查询语句更清晰。
UT F-8 编码:
从 MySQL 8 开始,使⽤ utf8mb4 作为 MySQL 的默认字符集。
⽀持表 D D L 的原⼦性:
InnoDB 现在⽀持表 DDL 的原⼦性,也就是 InnoDB 表上的 DDL 也可以实现事务完整性,要么失败回滚,要么成功提交,不⾄于出现 DDL 时部分成功的问题,此外还⽀持 crash-safe 特性,元数据存储在单个事务数据字典中。
⽀持 cr as h-s af e 特性:
元数据存储在单个事务数据字典中。
⾼可⽤性:
InnoDB 集为数据库提供集成的原⽣ HA 解决⽅案。
mysql操作官方文档caching_s ha2_p as s wor d ⾝份验证插件:
caching_sha2_password是MySQL 8.0中的默认⾝份验证插件,替换了mysql 5.7的mysql_native_password,⾝份验证安全性能提升。
image.png image.png
image.png image.png
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论