“ 底部 DB引擎分类及排名,你用到的排名第几? ”
Hello,大家好。我是公众号“八点半技术站”的小编-Bruce.D。
今天是周四(2020-04-09),分享一句谚语 “一日无二晨,时过不再临” 。分享给大家的是 「MySQL 模块」- MySQL8.0 特性。
在选择 MySQL 版本的时候,了解一下版本时间线的变化迁移也是有一定的帮助的。也算是一种 “怀旧”。
今天我会分为3个模块,给大家讲解 MySQL 。
第一,mysql 的时间线演变之路;
第二,新 mysql 8.0 的一些特征变化;
第三,数据库 DB引擎分类及排名。
01
—
MySQL 时间线
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
03
—
DB 引擎分类/排名
数据库,它的类型其实有很多种,我们一般常用且脱口而出的有 MySQL、nosql、MongoDB ......等等一系列。那大家有过了解大约有多少种吗?以及他们的一个排名趋势。
数据库种类目前根据某官方数据统计,种类有 342 种 。那么我就截取 4月份排名前30 的数据库分享给大家。如下图:
————————end————————