【发布时间】:2018-07-12 04:55:01
【问题描述】:
我们正在运行 MariaDB v 10.1.30,测试一个脚本以运行数据库维护脚本,以使用 OPTIMIZE TABLE 命令通过设置 innodb_defragment = 1 的新 10.1.1 补丁来对表进行碎片整理和重建索引。
我已经使用 Alogorithm = INPLACE 测试了 Alter Table,工作正常,但我正在尝试使用 innodb_defragment 并使用优化来避免在通过 Alter table INPLACE 算法重建表时创建临时文件。
在使用 Optimize 时,没有创建临时表,但是该表被锁定,不允许并发连接,这与 Alter Table with Alogorithm = INPLACE 的情况不同,但是文档提到优化是使用 INPLACE 算法完成的。
https://mariadb.org/defragmenting-unused-space-on-innodb-tablespace/
这是一个错误还是我在这里遗漏了什么,请告知。
【问题讨论】:
-
你可能应该写一个错误报告。同时,
OPTIMIZE TABLE和它所做的碎片整理几乎不需要。为什么要使用它? -
感谢您的评论,我试图获得最佳选择来设置数据库维护以使用 Online DDL 方法清除碎片表,我遇到了这个新添加并想衡量哪个适合更好的是,还有一个主要目的是对一些在线表进行索引重建。
-
我对@987654323@ 的看法:永远不要对 InnoDB 表这样做。
-
@rick-james 为什么不呢?
标签: mysql optimization mariadb defragmentation