动力节点旗下在线教育品牌  |  咨询热线:400-8080-105 学Java全栈,上蛙课网
首页 > 文章

7个不容错过的MySQL和MariaDB新功能

07-23 15:25 325浏览
举报 T字号
  • 大字
  • 中字
  • 小字

在过去的几年中,开源关系数据库管理系统MySQLMariaDB发生了翻天覆地的变化:新的和改进的功能,针对长期存在问题的修复,全面的性能提升等等更改之后,很容易错过MySQL和MariaDB当时添加的一些最佳功能。在本文中,我们就来介绍MySQLMariaDB新功能,以及为什么要使用它们。

一、JSON支持

NoSQL数据库出现时,他们承诺可以简化开发人员并提供灵活的可伸缩性,因此许多人想知道关系数据库是否正在淘汰。简短答案:完全没有。NoSQL系统既方便又灵活,但是架构和表将始终占有一席之地。而且,许多老式的关系数据库,其中包括MySQL和MariaDB,从NoSQL的书中摘录了一页,并添加了JSON支持作为标准功能。最终效果是在需要时与同一数据库中的常规SQL并排使用NoSQL。

MySQL和MariaDB中的JSON支持可以在特殊指定的表列中插入JSON文档。可以使用与其他数据列相同的约束来自动验证插入的JSON数据。我们可以将数据检索为JSON文档或简单标量,还可以使用生成的列或虚拟列来产生类似于JSON索引的效果。

这里需要牢记两个要点。首先,尽管MySQL和MariaDB中的JSON处理功能集  相似,但它们并不是彼此的直接替代品。其次,本机JSON列数据类型的MySQL和MariaDB实现也有所不同。如果要在两个数据库之间迁移或同步数据,这将导致  需要导航的轻微不兼容性。

二、资源组(仅限MySQL)

所有数据库作业都很重要,但是某些作业比其他作业更为紧急。例如,我们可能希望在后台运行诸如存档或计划的批处理作业之类的作业,同时确保尽可能快地执行关键业务工作。MySQL的资源组使这成为可能。

使用资源组,我们可以为分配给该组的所有数据库作业指定类型(“系统”或“用户”),CPU关联性和线程优先级。可以为会话选择一个资源组,或者使用优化器提示为单个语句选择一个资源组。

注意,在MySQL平台之间资源组的实现方式有所不同,并且不能将资源组与企业线程池插件结合使用。另外,尽管有功能要求在MariaDB中实现类似功能,但尚无实现该功能的计划。

三、OQGRAPH存储引擎(仅适用于MariaDB)

图形数据库可以比关系数据库更有效地存储和浏览数据之间的关系。虽然像Neo4j  或Amazon Neptune这样的专用图数据库仅专注于图的存储和处理,但MariaDB允许我们通过OQGRAPH存储引擎与常规SQL查询并排执行图处理。

大多数图形数据库使用其自己的自定义查询语言。使用OQGRAPH,可以使用常规SQL加载数据并构造图查询。结果以MariaDB的常规查询格式返回,因此可以将其与常规SQL表查询的结果合并或合并。

四、Oracle兼容性功能(仅适用于MariaDB)

Oracle的数据库产品仍然是所有IT中使用最广泛的数据库产品之一,但是其许可成本和合同限制使许多用户开始关注退出策略。而且,许多基于Oracle构建的应用程序都大量使用了Oracle PL / SQL及其语法专有的功能。

在过去的几个版本中,MariaDB 引入了许多新功能,这些新功能旨在模拟Oracle数据库的行为,尤其是Oracle的PL / SQL语言。从理论上讲,这允许许多现有的PL / SQL代码按原样运行,或仅进行少量修改即可在MariaDB中运行。MariaDB小组估计,使用兼容性功能,大约80%的旧Oracle PL / SQL可以按原样运行。使用Oracle PL / SQL模式的MariaDB命令在每个客户端上生效。您无需全局更改MariaDB的行为即可使用此功能。

五、系统版本表(MariaDB)

SQL标准的2011版本增加了版本表,数据库可以跟踪表行的版本。MariaDB 在版本10.3.4中添加了系统版本化表作为本机功能。使用MariaDB的系统版本表,可以使用给定的时间范围运行查询,并且所提供的结果将在该时间段内按原样显示。还可以修改或删除日期范围内的行,添加或删除要跟踪的时间段,以及使用在应用程序级别和/或系统级别指定的时间段。从理论上讲,可以使用任何支持时间值的数据库来执行此操作,但是自己很难滚动它;MariaDB是在后台进行的。

尽管MariaDB支持任何数据库引擎使用系统版本表,但是某些功能(例如,显示特定交易中间记录的交易精确历史记录)仅适用于InnoDB引擎。

六、ColumnStore存储引擎/ InfiniDB(MariaDB)

MariaDB和MySQL中的可插拔存储引擎技术使两个数据库都可以大大扩展其本机功能。一种这样的存储引擎ColumnStore,将MariaDB变成了列存储数据库。(ColumnStore不适用于MySQL,但项目ColumnStore源自InfiniDB,它使用MySQL执行查询。)

列存储是高速查询大量数据的理想选择。OLAP系统使用列存储,因此ColumnStore可以作为一种在MariaDB中提供OLAP样式功能的方式,而无需依赖外部(通常是商业产品)如Teradata或Greenplum。ColumnStore不能提供这些产品随附的全部现成的分析或数据编组功能,但它可以为内部分析解决方案提供数据层。

七、蜘蛛存储引擎

该功能越强大,在生产中就越难以部署。这样的功能之一就是数据库分片,或在多个服务器之间拆分数据库以提高性能,这通常需要大量的修补和调整。

MariaDB 10.3.4(及更高版本)可使用  Spider(具有内置分片和数据分区功能的存储引擎)来简化操作。Spider支持几种不同的模式:简单联合,高可用性,分片和分片以及高可用性。

Spider确实与MariaScale的MaxScale(MariaDB的系统)在功能上有一些重叠,以实现负载平衡,代理,故障转移和高可用性。MaxScale涵盖了比Spider更广泛,更宏大的用例集,但是如果您想在更适度的部署中利用分片,Spider很有用。Spider最初是作为MySQL插件开发的,现在仍以这种形式提供给MySQL用户。两个版本中的绝大多数功能都相同,但也有一些例外。

在阅读完本文后,相信你已经见识到了MySQLMariaDB强大新功过人之处,是不是觉得不容错过呢?感兴趣的你可以通过观看本站专业视频解锁MYSQL更多强大的功能哦!

0人推荐
共同学习,写下你的评论
0条评论
进击的女程序猿
程序员进击的女程序猿

5篇文章贡献36700字

作者相关文章更多>

推荐相关文章更多>

MySQL开发规范

达芬奇09-04 11:38

必须掌握的30种SQL语句优化

不写代码你养我啊08-23 11:30

ES(Elasticsearch)支持PB级全文搜索引擎入门教程

HelloWorld09-29 17:28

Java面试中的hadoop面试题及答案整理

兔子06-15 17:15

数据库分类之速成篇

呵呵呀06-17 18:54

发评论

举报

0/150

取消