最近我们开始优化一个从未遵循任何标准的数据库。 我们要做以下事情。
clean up of unused tables.
optimizing data types and indexes.
tuning slow queries.
evaluating my.cnf configurations with mysqltuner.pl and similar ones
在这个过程中,我遇到了OPTIMIZING碎片表。 什么是这个碎片表,这将如何影响功能和性能。 为什么我要在这些表上运行OPTIMIZE ......?
我相信这根本不会影响功能。如果没有,请纠正我。
提前感谢您的回复。 问候, UDAY
答案 0 :(得分:6)
当您删除记录(或将它们更新为更小)时,该表将包含“空洞”,其中包含空数据块。如果它们适合在孔中,那些将填充新数据,但是根据您使用该表的方式,可能存在大量浪费的空间。这样做并不好,因为您现在需要从磁盘中读取更多块以获取相同数量的有用信息。
在这些碎片表上运行optimize命令会移动记录以消除表中的漏洞。
在进行大规模维护或更新操作(例如批量删除)后,通常最好这样做。