我已经对庞大的数据库(数亿条logging)中的许多表执行了许多不同的DELETE查询。 什么会更快 – 针对每个修改表运行OPTIMIZE TABLE。 或者只是为了mysqldump进入文件,然后从文件恢复回来?
认为这将是平等的。 只是mysqldump | MySQL会更快;)
OPTIMISE TABLE会更快,因为数据不需要转换成mysqldump使用的文本格式,然后被mysql命令行客户端消解。
如果你使用的是InnoDB那么你可以做另一个窍门,
ALTER TABLE $table ENGINE innodb;
这将通过将所有行复制到新的表空间并在完成后replace当前表来重build表。 但是,在发生这种情况时,原始表格将不会阻止读者。 作家当然会被阻止更新,直到操作完成。