代码之家  ›  专栏  ›  技术社区  ›  Mikee

优化InnoDB数据库

  •  0
  • Mikee  · 技术社区  · 14 年前

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

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

    干杯!

    2 回复  |  直到 14 年前
        1
  •  1
  •   Morgan Tocker    14 年前

    关于何时优化表,有很多垃圾建议。

    如果“开销”是指空闲空间,请记住InnoDB自然会让页面满93%(15/16),以便为以后的更新留下空白。

    当您优化表时,它实际上也不会以最佳方式重新创建它们。它重新创建表定义,然后逐行将数据复制到表中。主键索引不是这样分段的,但次键可能是这样的(因为它们可能是按顺序插入的,导致从第一天开始的分页/分段)。

    男爵在这里写了一篇很好的文章: http://www.xaprb.com/blog/2010/02/07/how-often-should-you-use-optimize-table/

        2
  •  0
  •   baklarz2048    14 年前

    这要看情况。如果所有东西都装在内存中,就可以了。

    你用哪种发动机?mysql>show create table table\u name;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