我有一个简单的数据库表,开销为170MB。
这是我需要担心的吗?当我对它运行优化时,它告诉我innodb不支持优化,因此重新创建表但仍然有170MB的开销。
这是我可以轻易忽视的事情吗?
喝彩!
答案 0 :(得分:1)
关于何时优化表格,有很多垃圾建议。
如果“开销”指的是自由空间,请记住,InnoDB自然会使页面满93%(15/16),以便为以后的更新留下空白。
优化表时,它实际上也不会以最佳方式重新创建表。它重新创建表定义,然后逐行将数据复制到其中。主键索引不会以这种方式分段 - 但是辅助键可能是(因为它们可能无序地插入,从而导致第一天的分页/碎片)。
Baron在这里写了一篇好文章: http://www.xaprb.com/blog/2010/02/07/how-often-should-you-use-optimize-table/
答案 1 :(得分:0)
这是我可以轻易忽视的事情吗?
这取决于。如果一切都适合RAM,那没关系。
你使用哪种引擎? mysql> show create table table_name; InnoDB支持优化表。
Mysql 5.1 innodb支持优化: http://dev.mysql.com/doc/refman/5.1/en/optimize-table.html
Mysql 5.0 innodb支持优化: http://dev.mysql.com/doc/refman/5.0/en/optimize-table.html
MySQL 4.1 innodb支持优化: http://dev.mysql.com/doc/refman/4.1/en/optimize-table.html