首页 > 图灵资讯 > 技术篇>正文

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

2023-04-16 09:24:29

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

  一、JSON支持

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

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

  这里有两个要点需要记住。首先,尽管JSON处理功能集在MySQL和MariaDB中 相似之处,但它们不是彼此的直接替代品。其次,本机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的应用程序也被广泛使用 PL / SQL及其语法专有功能。

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

  五、系统版本表(MariaDB)

  2011年SQL标准版本增加了版本表,数据库可以跟踪表行版本。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或Grenplum等外部(通常是商业产品)。ColumnStore不能提供所有现成的分析或数据组功能,但它可以为内部分析解决方案提供数据层。

  七、蜘蛛存储引擎

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

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

上一篇 如何完全删除MySQL数据库
下一篇 面试官亲自整理java数据库面试题

文章素材均来源于网络,如有侵权,请联系管理员删除。