由于我在一个表中插入了很多行的错误。我删除了行但我的数据库是> 1gb而不是200mb。我如何真空接种?我试图优化表格。它没有缩小尺寸。我是否坚持使用这个巨大的mysql文件?
答案 0 :(得分:3)
创建一个相同的表格结构,select * into newtable from oldtable
然后drop oldtable
然后alter table newtable rename oldtable
。最快的跨平台方式。
(在mysql中你可以使用rename table newtable to oldtable
,但这不是标准的sql。)
有一点需要注意,这只适用于mysql被设置为每个表一个文件,这是默认的AFAIK,但它也可以设置为一个文件中的所有表。如果以这种方式设置,则必须克隆整个数据库,这是一项更为重要的任务。如果您有一个“ibdata”文件,则所有表都在一个文件中,您可能应该看到this answer。