InnoDb开销?

我刚刚从MyISAM转换了几个大表到InnoDB。

当我在phpMyAdmin中查看表时,他们显示了大量的开销(一个表有6.8GB)。

优化这些表(InnoDB上不支持的命令)不会像在MyISAM上那样受到影响。

这是InnoDB拥有不断增长的数据文件的结果,即使在删除之后永远不会返回空间。 如果是这样的话,我从来没有见过像其他InnoDB表格那样的开销。

有没有办法清理这个?

编辑:这是我试过的东西(没有成功):

  1. 优化表格
  2. 通过主键重新sorting表
  3. 整理表格

缩小InnoDB数据文件的最常见方法是使用mysqldump进行完全备份并恢复。 可悲的是,由于InnoDB共享表空间的devise,未使用的表空间不能像MyISAM或MS SQL那样直接返回到操作系统。

InnoDB的人一直很激烈地说,这是一个故意的devise决定,但如果是这样的话,这是非常短视的。 我完全理解不自动缩小数据文件的想法,但没有手动选项是非常烦人的。

请注意,您可以将InnoDBconfiguration为每个表空间使用一个文件 。 如果你这样做,你应该能够单独优化表来收缩文件,因为每个文件都有一个单独的表空间文件。