mysql 版本
版本时间
版本3.23
2001
版本4.0
2003
版本4.1
2005
版本5.0
2006
版本5.1
2008
版本5.5
2010
版本5.6
2012
版本5.7
2015
版本8.0
2018
02
—
MySQL 8.0 特性
这里我会把 MySQL8.0 的特性进行拆分,结合官方 与 自己的思想 整体讲解给大家。我认为,如果你对 MySQL 感兴趣,不妨静下心来,花费几分钟看看新特性,会有一定收获的。
(哪怕面试中,如果聊到MySQL ,你完全可以跟他聊聊你对 MySQL 8 的一个了解,让面试官对你也有一个不同的看法。说实在的,不是所有面试官技术深度那么广。你懂~~~)
1. 官方表示 MySQL8 要比 MySQL5.7 快 2 倍。可怕,这可是 2 倍之差,相当于性能改进更快。
2. 从 MySQL 5.7 升级到 MySQL 8.0 仅支持通过使用
in-place
方式进行升级,并且不支持从 MySQL 8.0 降级到 MySQL 5.7(或从某个 MySQL 8.0 版本降级到任意一个更早的 MySQL 8.0 版本)。唯一受支持的替代方案是在升级之前对数据进行备份。
3.
从 MySQL 8.0 开始,新增了一个叫窗口函数的概念,它可以用来实现若干新的查询方式。窗口函数与 SUM()、COUNT() 这种集合函数类似,但它不会将多行查询结果合并为一行,而是将结果放回多行当中。即窗口函数不需要 GROUP BY。
4.
在 MySQL 8.0 中,索引可以被“隐藏”和“显示”。当对索引进行隐藏时,它不会被查询优化器所使用。我们可以使用这个特性用于性能调试,例如我们先隐藏一个索引,然后观察其对数据库的影响。如果数据库性能有所下降,说明这个索引是有用的,然后将其“恢复显示”即可;如果数据库性能看不出变化,说明这个索引是多余的,可以考虑删
掉。
5. MySQL 8.0为索引提供了降序支持。此类索引中的值以降序排列,我们将其向前扫描。在8.0之前的版本中,当用户创建降序索引时,我们创建了一个升序索引并向后扫描。好处之一是,前向索引扫描比后向索引扫描更快。
6. 从 MySQL 8 开始,使用 utf8mb4 作为 MySQL 的默认字符集。
7.MySQL 8.0添加了新的JSON函数,并提高了对JSON值进行排序和分组的性能。
8. MySQL 8.0添加了JSON表功能,该功能允许使用SQL机制处理JSON数据。JSON_TABLE()创建JSON数据的关系视图。它将JSON数据评估的结果映射到关系行和列中。用户可以使用SQL将函数返回的结果查询为常规关系表,例如联接,项目和聚合。
9.MySQL 8.0添加了聚合函数JSON_ARRAYAGG()来生成JSON数组,并添加了JSON_OBJECTAGG()来生成JSON对象。这样就可以将多行中的JSON文档组合到JSON数组或JSON对象中。
10.所述 JSON_MERGE_PATCH() 由指定的功能的JavaScript工具(和其他脚本语言)的语义 RFC7396,即,其由所述第二文档的优先级删除重复。例如,JSON_MERGE('{“ a”:1,“ b”:2}','{“ a”:3,“ c”:4}'); #返回{“ a”:3,“ b”:2,“ c”:4}。
更多详细参照,mysql 官方网站,如下链接:
https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-11.html