0

由于一个错误,我在一个表中插入了很多行。我删除了这些行,但我的数据库 >1gb 而不是 200mb。我该如何抽真空?我尝试优化表格。它没有缩小尺寸。我被这个巨大的mysql文件卡住了吗?

4

1 回答 1

3

创建一个相同的表结构,select * into newtable from oldtable然后. 最快的跨平台方式。drop oldtablealter table newtable rename oldtable

(在 mysql 中你可以使用rename table newtable to oldtable,但这不是标准的 sql。)

需要注意的是,这仅适用于将 mysql 设置为每个表一个文件,这是默认的 AFAIK,但它也可以设置为一个文件中的所有表。如果以这种方式设置,您将不得不克隆整个数据库,这是一项更重要的任务。如果您有一个“ibdata”文件,则所有表都在一个文件中,您可能应该看到这个答案

于 2012-07-29T04:03:53.537 回答