mysql 优化表或新建一个
Posted
技术标签:
【中文标题】mysql 优化表或新建一个【英文标题】:mysql optimize table or create a new one 【发布时间】:2012-09-27 14:24:21 【问题描述】:我有一个 mysql MyISAM 表,它有 6.5G 开销。我不确定是否应该优化表,或者只是创建一个新表,从旧表填充并重命名它。
这是一个生产环境,因此停机时间应尽可能短。最好的方法是什么?
【问题讨论】:
是 MyISAM 还是 InnoDB 表? 已经编辑了我的帖子 :) 这是 MyISAM 【参考方案1】:创建一个新表并转置数据意味着原始表仍然可读,但是,如果您允许对其进行写入,则必须在复制完成后转置这些写入。优化过程更可靠,因为它在操作完成之前不允许写入,但正如您所注意到的,这确实涉及一些停机时间。
这真的取决于此表上是否有足够的写入活动来导致问题。
您可能应该从测试机器上的备份中恢复此数据库,并尝试几种不同的方法来执行此操作,然后再将其提交到您的生产系统上。
【讨论】:
我去优化它,但是 myisam 排序缓冲区太慢了,损坏了表,然后必须修复它。创建一个新表要好得多(在这种情况下)。以上是关于mysql 优化表或新建一个的主要内容,如果未能解决你的问题,请参考以下文章