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 优化表或新建一个的主要内容,如果未能解决你的问题,请参考以下文章

mysql查询优化

mysql优化相关

mysql性能优化2

MYSQL优化-分表分库主从复制读写分离

MYSQL数据太大时怎么优化 视图?存储过程? - 技术问答

MySQL EXPLAIN 命令: 查看查询执行计划