Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 运行后表的大小增加了“;“优化表tablename”;;_Mysql_Mariadb_Innodb - Fatal编程技术网

Mysql 运行后表的大小增加了“;“优化表tablename”;;

Mysql 运行后表的大小增加了“;“优化表tablename”;;,mysql,mariadb,innodb,Mysql,Mariadb,Innodb,我已经运行了一个优化表名;其中表名大小约为54GB。为了减小这个innodb表的大小,我运行了optimizetable命令。但是这将表的大小增加到了59GB!任何这样做的理由都会更有帮助 Edit1:此表用于日志记录 Edit2:此表在MySQL中使用较早,然后移动到MariaDB,现在在MySQL 5.7中运行 我在Ubuntu版本中运行MySQL 5.7,RAM大约为50GB。我没有确切的解释,但我见过类似的情况。我的猜测是,根据插入数据的顺序,某些类型的索引会导致更大的存储碎片。作为一个

我已经运行了一个优化表名;其中表名大小约为54GB。为了减小这个innodb表的大小,我运行了optimizetable命令。但是这将表的大小增加到了59GB!任何这样做的理由都会更有帮助

Edit1:此表用于日志记录

Edit2:此表在MySQL中使用较早,然后移动到MariaDB,现在在MySQL 5.7中运行


我在Ubuntu版本中运行MySQL 5.7,RAM大约为50GB。

我没有确切的解释,但我见过类似的情况。我的猜测是,根据插入数据的顺序,某些类型的索引会导致更大的存储碎片。作为一个实验,我会尝试删除所有的二级索引,然后优化表,然后重新创建索引。谢谢,我在这里提到的表用于记录日志,它只有一个键(主键),即表中的id列。该表没有其他键,任何其他可能性/建议都会有所帮助。感谢您的回答。我知道InnoDB页面最初默认只占15/16,以便在更新行时留出一些扩展空间。您的表的页面很可能在旧表中填充得很紧,当您进行优化时,它会用额外的空间将数据复制到新页面。因此,巧合的是,它最终花费并使用了9.25%的空间。这只是一个猜测。谢谢@BillKarwin,我使用的数据库在MySQL中,然后同一个数据库被移动到MariaDB Galera集群,然后移动到MySQL 5.7。不同RDBMS之间移动的数据是否会导致此类问题?显然,是的。我没有做过这种转变,但你做过。你的经验证实了什么?