MariaDB 中的 XtraDB 是否像 InnoDB 在 MySQL 中那样创建大文件?

Does XtraDB in MariaDB craate large files the way InnoDB does in MySQL?

我一直在使用 MySQL 但是,正如许多人痛苦地发现的那样,InnoDB 引擎正在创建大量和不可压缩的 ibdata1 文件。激活 innodb_file_per_table 有帮助,但不能解决问题。

我正在考虑迁移到 MariaDB 并使用 XtraDB 引擎。我知道这是 InnoDB 的改进版本,但我想知道它是否仍然带有这个重要的流程。我没有在任何地方看到它,所以我猜这不是 MariaDB 的问题,但我想确定一下。

有没有人有这方面的确切消息? 提前致谢。

当然,使用 innodb_file_per_table 是标准的推荐配置,当然,只有在 生成庞大的系统之前启用它才能提供最大的好处tablespace 文件,ibdata1.

假设你做的都正确,如果你仍然看到它显着增长,你正在做一些事情让它增长。

https://www.percona.com/blog/2013/08/20/why-is-the-ibdata1-file-continuously-growing-in-mysql/

重做日志 (!)、数据字典和厨房水槽都仍然存储在那里,所以 MySQL (InnoDB) 并不只是在分配越来越多的磁盘 space 然后就忘了它,然后要求更多。您的工作量在很大程度上决定了这种增长。

XtraDB 从磁盘数据结构的角度来看InnoDB。拿一个 MySQL 服务器,停止它,提取 MariaDB 或 Percona Server 二进制文件,然后启动它们......然后 XtraDB 像老板一样使用你的 ibdata1 和日志文件以及 .ibd 文件,就像它们一样。据推测它也会以另一种方式出现,但从来没有人尝试过。 (开玩笑。但说真的,在我的数十台 MySQL-esque 服务器网络中,我从未将机器迁移到 MariaDB 或 Percona Server,后来我想,"wow, I sure wish I could go back to Oracle's version of MySQL." 关于 XtraDB 使用现有 ibdata1 的部分.ibd 文件不是开玩笑,这都是真的。我什至从 Solaris 上的 MySQL 获取了原始二进制数据文件,并将它们复制到 Linux 机器上,并用它们启动了 MariaDB -- 没问题。)

以相同的工作量呈现它,您应该期望类似的增长……虽然不一定是相同的增长。但是 XtraDB 不是 InnoDB,因为它如何使用与 InnoDB 相同的文件完成相同的事情。它在许多方面更智能、更快,并且可以在有限的范围内配置以限制其增长,但它不会在您的磁盘 space 限制上发挥极端的魔力,因为它需要相同的 space 做同样的工作。从根本上说,就其在磁盘中的存在而言,它仍然是 InnoDB。