MariaDB 11 DBMS 的一个新的重要分支已经推出

10.x 分支成立 10 年后,MariaDB 11.0.0 发布,它提供了一些破坏兼容性的重大改进和更改。该分支目前处于 alpha 版本质量,稳定后即可投入生产使用。 MariaDB 12 的下一个主要分支包含破坏兼容性的更改,预计不会早于 10 年后(2032 年)。

MariaDB 项目正在开发 MySQL 的一个分支,尽可能保持向后兼容性,并集成额外的存储引擎和高级功能。 MariaDB 的开发由独立的 MariaDB 基金会监督,遵循独立于各个供应商的开放、透明的开发流程。许多 Linux 发行版(RHEL、SUSE、Fedora、openSUSE、Slackware、OpenMandriva、ROSA、Arch Linux、Debian)中都提供了 MariaDB DBMS,而不是 MySQL,并且已在 Wikipedia、Google Cloud SQL 和 Nimbuzz 等大型项目中实施。

MariaDB 11分支的一个关键改进是查询优化器过渡到新的权重模型(成本模型),它可以更准确地预测每个查询计划的权重。虽然新模型可能会缓解一些性能瓶颈,但它可能并非在所有场景下都是最佳的,并且可能会减慢某些查询的速度,因此鼓励用户参与测试并在出现问题时通知开发人员。

以前的模型擅长寻找最优索引,但在表扫描、索引扫描或范围获取操作的适用性方面存在问题。在新模型中,通过更改存储引擎操作的基本权重消除了这个缺点。在评估与磁盘速度相关的操作(例如顺序写入扫描)的性能时,我们现在假设数据存储在提供每秒 400MB 读取速度的 SSD 上。此外,还调整了优化器的其他权重参数,例如,可以实现在子查询中使用索引进行“ORDER BY/GROUP BY”操作的功能,并加快非常小的表的工作速度。

需要注意的是,新的权重模型将允许您在以下情况下选择更优化的查询执行计划:

  • 当使用跨越 2 个以上表的查询时。
  • 当您的索引包含大量相同值时。
  • 当使用的范围覆盖表的 10% 以上时。
  • 当您有复杂的查询时,并非所有使用的列都被索引。
  • 当使用涉及不同存储引擎的查询时(例如,当一个查询访问 InnoDB 和内存引擎中的表时)。
  • 当使用FORCE INDEX来改进查询计划时。
  • 当使用“ANALYZE TABLE”时查询计划恶化。
  • 当查询跨越大量派生表(大量嵌套 SELECT)时。
  • 使用索引下的 ORDER BY 或 GROUP BY 表达式时。

MariaDB 11分支中的主要兼容性问题:

  • SUPER 权限不再允许您执行可单独设置权限的操作。例如,要更改二进制日志的格式,您将需要 BINLOG ADMIN 权限。
  • 删除了 InnoDB 中的更改缓冲区实现。
  • Innodb_flush_method 和 innodb_file_per_table 已被弃用。
  • Mysql* 名称支持已被弃用。
  • 将explicit_defaults_for_timestamp 设置为0 已被弃用。
  • 符号链接包含在单独的包中以与 MySQL 兼容。
  • innodb_undo_tablespaces 参数的默认值已更改为 3。

来源: opennet.ru

添加评论