升级到 MariaDB 服务器 10.3。 什么是新的?

升级到 MariaDB 服务器 10.3。 什么是新的?

我们很高兴地宣布发布 MariaDB Server 10.3 的一般更新! 此版本是 MariaDB 服务器开发的一个巨大里程碑,是开发团队和贡献者付出巨大努力的结果——感谢所有参与人员! 随着去年 MariaDB Server 10.2 的主要发布,我们开始了向我们的托管服务添加企业级功能的旅程,以更好地弥合与专有数据库的差距。 通过 MariaDB Server 10.3,我们在这条道路上向前迈出了一大步,成为第一个添加临时数据处理(通过系统版本控制)以及与 Oracle 和 Oracle PL/SQL 序列的兼容性等功能的开源企业数据库。 与此同时,我们希望忠于我们的开源和创新根源(否则我们不会称自己为创新!),增加对新存储引擎的支持,这些引擎可以更轻松地适应不同的工作负载和用户可用的不同硬件. 这条道路使我们能够快速适应不断变化的环境,在这个环境中,新的创新以不断加快的速度创造出来。 这是我们迄今为止最大的版本,通过这个版本,我们希望将我们的股份放在类别中 企业数据库.

MariaDB Server 10.3 的主要改进可以归为以下几类:

  • 时间数据处理(系统版表格)
  • Oracle 兼容性特性
  • 专用存储引擎

时间数据处理

通过系统版本控制功能处理时态数据是 MariaDB Server 10.3 版中最有趣的新增功能之一。 通过系统版本控制,数据库会跟踪对表的每一行所做的所有更改。 旧版本的行通过普通查询语法是不可见的,但是使用特殊语法可以访问所有旧版本的行。 此功能适用于大量用例,从审计和取证(找到一段时间前执行的可疑查询的确切时间点结果集)到分析数据变化、比较客户偏好等年和许多其他可能性。 可以为任何表打开此功能,也可以定期清除历史记录,这样您的表就不会无限增长。 用例令人兴奋且无穷无尽!

与甲骨文的兼容性

随着大型企业对 MariaDB Server 的需求增加,我们也看到了对专有数据库中容易获得的功能的需求。 为了使 MariaDB 比其他产品更易于 DBA 和经验丰富的数据库工程师使用,我们添加了尽可能多的兼容性。

在 MariaDB Server 10.3 中,除了现有的 MariaDB SQL/PSM 语法之外,还添加了新的存储过程语法。 现在可以支持 MariaDB SQL/PL,这是一种旨在与 Oracle PL/SQL 兼容的语法。 这样,现有应用程序的迁移就容易得多,并且无需复杂的再培训即可使用现有技能。 在此过程中,添加了几个新结构来支持存储过程,例如新的 ROW 数据类型。

新语法并不是唯一的新兼容性功能,添加的序列比现有的 auto_increment 函数更灵活地创建唯一主键。 此功能与 Oracle 序列完全兼容。 除了之前添加的功能(例如窗口函数、公用表表达式 (CTE) 等),我们现在拥有一套深入的企业级功能,可以满足任何类型的应用程序需求。

专用存储引擎

在 MariaDB,我们相信为正确的工作使用正确的工具。 然而,我们并不认为为了实现这一目标,一切都需要改变。 我们拥有带有可插拔存储引擎的独特架构,允许用户在不改变核心特性和功能的情况下使数据库适应用例和工作负载。 我们相信这种灵活性符合用户的利益,并将在 MariaDB 的未来版本中进一步改进这方面。 这种架构将允许社区和我们的团队通过添加为新硬件和新用例设计的存储引擎来进一步创新。 在 MariaDB Server 10.3 中,我们引入了两个新的稳定存储引擎,MyRocks 和 Spider。

MyRocks 是与 Facebook 的合作,其中存储引擎构建在 RocksDB 之上——RocksDB 是一个主要由 Facebook 维护的开源项目。 MyRocks 的存储引擎是使用日志结构合并树(LSM 树)架构构建的,非常适合写入密集型工作负载。 MyRocks 还具有非常高的压缩比,旨在最大限度地延长 SSD 驱动器的使用寿命。

Spider 是一种专为超大规模设计的存储引擎。 Spider 存储引擎允许您跨多个节点分片特定表。 它使用分区协议来定义表应该如何分区,并且每个单独的分片驻留在远程 MariaDB 服务器上,该服务器只处理对该特定分片的查询。 使用 Spider,您可以获得 INSERT 和键的几乎线性缩放。

还有更多……

除此之外,还添加了许多功能来帮助加快模式操作(例如即时添加列)和其他优化和兼容性功能。 ADD COLUMN 功能是我们与客户和合作伙伴(包括阿里巴巴、腾讯和 ServiceNow)的 MariaDB 开发团队的另一个例子,它只是使繁重的 DDL 操作更有用的开始。