01

MySQL 时间线


mysql 版本
版本时间
版本3.23
2001 
版本4.02003
版本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





03


DB 引擎分类/排名


数据库,它的类型其实有很多种,我们一般常用且脱口而出的有 MySQL、nosql、MongoDB ......等等一系列。那大家有过了解大约有多少种吗?以及他们的一个排名趋势。


数据库种类目前根据某官方数据统计,种类有 342 种 。那么我就截取 4月份排名前30 的数据库分享给大家。如下图:

一起来聊聊MySQL 8.0 的特性及排名可好?_JAVA




————————end————————



欢迎大家加入WeChat 技术交流群wechat:xzzs730

一起来聊聊MySQL 8.0 的特性及排名可好?_JAVA_02

技术群交流 长按 ↑ 上方二维码 扫码加群 


链接地址技术群分享-存档记录



https://github.com/gtcarry888/WeChat-Sharing-records




如有其他问题,可留言至 gtcarry999@163.com 邮箱。