Answers:
开销似乎是数据库用来运行某些查询的临时磁盘空间,因此,您只需要担心它真的变高。
您可以将“优化表”与硬盘驱动器的碎片整理进行比较。
我引用:
随着时间的推移,每个数据库都需要某种形式的维护,以使其保持最佳性能水平。清除已删除的行,重新排序,压缩,管理索引路径,碎片整理等,在mysql中称为OPTIMIZATION,在其他数据库中则称为其他术语。例如,IBM DB2 / 400称其为REORGANIZE PHYSICAL FILE MEMBER。
这就像在更换汽车机油或进行调校。您可能认为您确实没有必要,但是这样做可以使您的汽车运行得更好,获得更高的汽油行驶里程等。获得很多行驶里程的汽车需要更频繁地进行调校。大量使用的数据库需要相同的数据库。如果您要执行许多UPDATE和/或DELETE操作,尤其是如果您的表具有可变长度的列(VARCHAR,TEXT等),则需要进行调整。
如果您正在谈论的是phpMyAdmin
所谓的东西overhead
,那么它是表数据文件的实际大小相对于同一数据文件的理想大小(就像刚刚从备份中还原时一样)。
出于性能原因,MySQL
删除或更新行后不要压缩数据文件。
这overhead
对表扫描不利,即,当您的查询需要运行所有表值时,它将需要查看更多的空白空间。
您可以overhead
通过运行OPTIMIZE TABLE
压缩表和索引的方法来摆脱它。
开销是表的Data_free,即已分配但未使用的字节数。 我们可以通过SQL命令SHOW TABLE STATUS找到它。它是表分配大小的可用空间。
优化表可能会很成问题。例如,如果该表在站点上大量使用。
http://dev.mysql.com/doc/refman/5.1/zh-CN/optimize-table.html
删除MyISAM或ARCHIVE表的很大一部分,或对具有可变长度行(具有VARCHAR,VARBINARY,BLOB或TEXT列的表)的MyISAM或ARCHIVE表进行许多更改之后。删除的行将保留在链接列表中,随后的INSERT操作将重用旧的行位置。
我相信我已经证实了这种行为。确实,这确实非常有用。