2010-10-21 87 views
0

我有一个简单的数据库表,开销为170MB。优化InnoDB数据库

这是我需要担心的事吗?当我运行优化时,它告诉我innodb不支持优化,因此重新创建表,但仍有170MB的开销。

这是我可以轻松忽略的东西吗?

干杯!

+1

请提供非高架的大小把开销关系。 – 2010-10-21 13:07:30

+0

嗨,这只是一个66mb的数据库。 – Mikee 2010-10-21 18:04:29

+0

详细说明,这是一个拥有160万行的数据库,但只有4列。主键,一个唯一的varchar(8)和两个unsigned int(10)的 – Mikee 2010-10-21 18:06:08

回答

1

有周围时,以优化大量的垃圾建议表。

如果按照'开销'表示可用空间,请记住,InnoDB自然会使页面占用93%(15/16),以便为以后的更新留出间隙。

当您优化表格时,它也不会以最佳方式重新创建它们。它重新创建表定义,然后将数据逐行复制到其中。主键索引不是通过这种方式分段的 - 但是二级键可能是(因为它们可能会从第一天开始顺序插入导致pagesplits /碎片)。

男爵写在这个位置好的帖子: http://www.xaprb.com/blog/2010/02/07/how-often-should-you-use-optimize-table/

0

这是我可以轻易忽略的东西吗?

这取决于。如果一切都适合内存,没关系。

您使用哪个引擎? 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

+0

它并不真的支持OPTIMIZE。它重新创建一个临时表并填充它,它几乎具有相同的结果。 – 2010-10-28 15:27:13