我有一张名为path
的表格。它占据了13G ibdata1的99%左右。它之前是INNODB
表,但我将其转换为MYISAM
。
如果我在新的path
表上运行优化表,它会释放我的ibdata1文件吗?或者这从未减小,我需要删除它并重新导入一个新的数据库?
答案 0 :(得分:2)
没有。删除InnoDB表将释放 InnoDB表空间(ibdata1
文件)中的空间,但它不缩小ibdata1
文件。
例外情况是,如果在设置服务器innodb_file_per_table
变量时创建了表,那么表将在其自己独立的InnoDB表空间(数据文件)中,并且当表被删除时,由表将发布。
答案 1 :(得分:1)
答案是否定的(上面有更好的解释)。我必须做的是:
1) Dump the database
2) Stop mysql
3) Delete the `ibdata1` file and two log files.
4) Restart mysql
5) Import the sql dump.
这会让您回到默认的ibdata1
文件大小。然后,如果表中没有完整性约束(这就是我所做的),或者2)设置innodb_file_per_table=ON
,如果保留innodb表,你可以1)将表的引擎更改为myisam。