我们有一个非常大的Mysql表,它是MyISAM。每当我们运行optimize table命令时,表都会被锁定,并且性能会受到影响。表不是只读的,因此创建临时表和交换临时表可能不起作用。我们也不能对表进行分区。
是否有其他方法/工具可以在不降低性能的情况下实现优化表功能。任何建议都会有很大帮助。
提前谢谢。
发布于 2012-06-09 18:13:29
http://dev.mysql.com/doc/refman/5.5/en/optimize-table.html
对于InnoDB表,OPTIMIZE TABLE映射到ALTER TABLE,这将重新构建表(...)
因此,我不期望在切换到InnoDB方面有任何改进,正如Quassnoi可能建议的那样。
根据定义,优化表需要对表进行一些独占访问,因此在优化过程中性能会降低
然而,可能需要采取一些步骤来减少优化所需的时间,这取决于您的表有多“庞大”:
发布于 2015-08-05 17:32:05
optimize table命令锁表,会降低性能。
你下载percona工具包命令来优化表。
在优化表期间,此命令不会锁定表。
使用下面的链接:
https://www.percona.com/doc/percona-toolkit/2.1/pt-online-schema-change.html
https://stackoverflow.com/questions/10958358
复制相似问题