执行表的日常优化会提高 MySQL 和 InnoDB 的性能吗?我以前从未这样做过,但我已经看到了 Drupal http://drupal.org/project/db_maintenance的这个模块,它看起来很有希望。
PS:据我所知,OPTIMIZE TABLE
释放开销。但是,我仔细检查了 mysql 中的开销列,对于我的 innodb 表来说它都是空的……所以,我想这可能没有必要。
执行表的日常优化会提高 MySQL 和 InnoDB 的性能吗?我以前从未这样做过,但我已经看到了 Drupal http://drupal.org/project/db_maintenance的这个模块,它看起来很有希望。
PS:据我所知,OPTIMIZE TABLE
释放开销。但是,我仔细检查了 mysql 中的开销列,对于我的 innodb 表来说它都是空的……所以,我想这可能没有必要。
MyISAM
Doing
OPTIMIZE TABLE mydb.mytable;
执行两个基本操作这肯定会清理表碎片并计算索引的新统计信息
InnoDB
Doing
OPTIMIZE TABLE mydb.mytable;
执行两个基本操作虽然这消除了碎片,但
ANAYLZE TABLE
对于 InnoDB 来说完全没用。我很久以前写过这个:Jun 21, 2011
: MySQL 查询优化器从哪里读取索引统计信息?Oct 16, 2011
:突然不得不重建索引以防止网站宕机如果您的数据增长率非常小(或者换句话说,您的数据集一次保持基本相同的大小几个月),那么对表进行碎片整理就有点过头了。您可能应该专注于调整 InnoDB 的其他方面(请参阅我
Aug 04, 2011
的帖子:优化 InnoDB 默认设置)我在 Drupal StackExchange 中也有关于优化 MySQL 的帖子
Jun 07, 2011
:如何将数据库从 MyISAM 转换为 InnoDB?Apr 15, 2011
: Drupal 7 站点的最佳 MySQL 配置是什么?值得一提的是:我已经在一个在重负载下工作的数据库的主表上运行了优化表。主表一直承受着大量的插入/更新/删除负载。优化将表大小减少了 90% 并改进了系统性能提升一倍以上!