我在其中一张表上完成了一些维护任务,现在有1GB的开销。
由于表操作运行了几个小时(删除40%的记录,花费了4个小时),所以我不想使用OPTIMIZE table命令锁定数据库几个小时,所以我正在寻找其他方法来处理这种开销并最好地删除方法。
该表本身为3GB,具有204705条记录。
最佳答案
假设您的表没有触发器,则完成联机OPTIMIZE的一种简单方法是使用pt-online-schema-change重建表。由于您说的是MyISAM表,因此您只需将引擎设置为MyISAM即可完成重建,而无需进行任何更改:
pt-online-schema-change --alter "ENGINE=MyISAM" D=your_schema,t=your_table
关于mysql - 如何在不锁定太多系统的情况下摆脱MyISAM表的1GB开销,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11505907/