我们有一个非常庞大的Mysql表,它是MyISAM。每当我们运行optimize table命令时,表都会被锁定并且性能会受到影响。该表不是只读的,因此创建临时表并交换它们可能无法解决。我们也无法对表格进行分区。
是否有其他方法/工具可以在不降低性能的情况下实现优化表功能。任何建议都会有很大的帮助。
提前致谢。
答案 0 :(得分:0)
http://dev.mysql.com/doc/refman/5.5/en/optimize-table.html
对于InnoDB表,OPTIMIZE TABLE映射到ALTER TABLE,其中 重建表(...)
因此,我不希望切换到InnoDB有任何改进,正如Quassnoi可能暗示的那样。
根据定义,OPTIMIZE TABLE需要对表进行一些独占访问,因此在OPTIMIZE'ation期间性能下降
尽管如此,可能需要采取一些措施来减少OPTIMIZE所需的时间,具体取决于您的表格“巨大”:
答案 1 :(得分:0)
优化表命令锁定表,它会降低性能。
您下载percona工具包命令以优化表格。
此命令在优化表期间不锁定表。
使用以下链接:
https://www.percona.com/doc/percona-toolkit/2.1/pt-online-schema-change.html