您不应错过的七个MySQL和MariaDB功能全面提高性能。由于变化如此之大,很容易错过MySQL和MariaDB在此期间添加的一些重要功能。本文将介绍添加到MySQL、MariaDB或两者的七个最重要的新功能,以及您应该使用它们的原因。1.当JSON支持NoSQL数据库时,它向开发者承诺了易用和灵活扩展。许多人想知道关系数据库是否会消失。简短的回答:它根本没有消失。NoSQL系统既方便又灵活,但模式和表将始终占有一席之地。此外,许多较旧的关系数据库(包括MySQL和MariaDB)借鉴了NoSQL,将JSON支持添加为标准功能。最终结果是您在需要时拥有NoSQL,而传统SQL位于同一数据库中。MySQL和MariaDB中的JSON支持允许您将JSON文件插入到特别指定的表列中。可以使用用于其他数据列的相同约束自动验证插入的JSON数据。您可以将数据检索为JSON文档或简单标量,并且可以使用生成的列或虚拟列来获得类似JSON的索引效果。这里有两点要记住。首先,虽然MySQL和MariaDB中的JSON处理函数集很相似,但它们并不是彼此的直接替代品。其次,MySQL和MariaDB有不同的机制来实现原生JSON列数据类型。如果您要在两个数据库之间迁移或同步数据,这可能会导致需要注意的轻微不兼容性。2.资源组(仅限MySQL)所有数据库工作都很重要,但有些工作比其他工作更紧迫。例如,您可能希望在后台运行归档或调度批处理作业等作业,同时确保尽快执行关键业务工作。MySQL的资源组使之成为可能。使用资源组,您可以为分配给该组的所有数据库作业指定类型(“系统”或“用户”)、CPU关联和线程优先级。您可以为会话选择资源组,也可以使用优化器提示为单个语句选择资源组。请注意,资源组在MySQL平台上的实现方式不同,您不能将资源组与企业线程池插件一起使用。此外,虽然有在MariaDB中实现类似功能的特性请求,但目前还没有实现该功能的计划。3.OQGRAPH存储引擎(仅限MariaDB)图数据库允许您比使用关系数据库更有效地存储和探索数据之间的关系。Neo4j或AmazonNeptune等专用图形数据库专注于图形存储和处理,而MariaDB允许您通过OQGRAPH存储引擎在图形处理的同时执行传统的SQL查询。大多数图形数据库都使用自己的自定义查询语言。借助OQGRAPH,您可以使用传统SQL加载数据和构建图形查询。结果以MariaDB的传统查询格式返回,因此可以与传统SQL表查询的结果连接或组合。4.Oracle兼容功能(仅限MariaDB)Oracle的数据库产品仍然是所有IT中使用最广泛的产品,但其许可成本和合同限制使许多用户考虑退出。此外,许多基于Oracle的应用程序广泛使用了OraclePL/SQL及其语法独有的特性。在过去的几个版本中,MariaDB引入了大量旨在模仿Oracle数据库行为的新功能,尤其是Oracle的PL/SQL语言。理论上,这允许大量现有的PL/SQL代码按原样或稍作修改在MariaDB中运行。MariaDB团队估计约80%的遗留OraclePL/SQL可以使用兼容性功能按原样运行。注意:使用OraclePL/SQL模式的MariaDB命令只对特定的客户端生效。您无需全局更改MariaDB的行为即可使用此功能。5.系统版本表(MariaDB)2011版的SQL标准增加了版本表,是数据库跟踪表行的功能。MariaDB在10.3.4版本新增了系统版本表的原生功能。借助MariaDB的系统版本表,您可以运行特定时间范围的查询,并在该时间范围内显示结果。您还可以修改或删除日期范围内的行,添加或删除要跟踪的时间段,以及使用在应用程序级别、系统级别或两者指定的时间段。理论上您可以使用任何支持时间值的数据库来执行此操作,但是您自己很难做到;MariaDB负责幕后工作。虽然MariaDB支持任何数据库引擎的系统版本表,但某些功能(例如显示特定事务的临时记录的事务精确历史记录)仅适用于InnoDB引擎。6.ColumnStore存储引擎/InfiniDB(MariaDB)MariaDB和MySQL中的可插拔存储引擎技术使得这两种数据库都可以极大地扩展原生功能。其中一个存储引擎ColumnStore将MariaDB转变为列存储数据库。(ColumnStore不适用于MySQL,但ProjectColumnStore派生自InfiniDB,并使用MySQL执行查询。)列存储非常适合高速查询大量数据。OLAP系统使用列式存储,因此ColumnStore相当于在MariaDB中提供类似OLAP的功能,而不依赖外部(通常是商业)产品,如Teradata或Greenplum。ColumnStore不提供开箱即用的全套分析或数据编排功能,但它可以为内部分析解决方案提供数据层。7、Spider存储引擎越强大,部署到生产环境就越困难。其中一项功能是数据库分片,它将数据库拆分到多个服务器以提高性能,通常需要进行大量修改和调整。MariaDB10.3.4(及更高版本)在Spider的帮助下简化了这项任务,Spider是一种具有内置分片和数据分区功能的存储引擎。Spider支持几种不同的模式:简单联合、高可用性、分片和高可用性分片。Spider确实与MaxScale有一些功能重叠,MaxScale是MariaDB的负载平衡、代理、故障转移和高可用性系统。MaxScale比Spider使用更广泛,但如果您想在更通用的部署环境中充分利用分片,Spider很有用。Spider最初只是一个MySQL插件,并且仍然以这种方式供MySQL用户使用。两个版本的大多数功能都相同,只有少数例外。原标题:7个你不想错过的MySQL和MariaDB特性,作者:SerdarYegulalp
