MySQL表不支持优化


9

我的Wordpress表似乎需要优化,因此我查看了命令OPTIMIZE TABLE。当我运行命令时,我得到以下结果:

表不支持优化,而是执行重新创建+分析

这些表是使用Wordpress 2.91安装程序构建的,根本没有进行任何修改。

  1. 这正常吗?
  2. 如何优化数据库以使事情正常运行?

您是否优化了桌子?
理查德·霍洛威

Answers:


5

您找到MySQL文档了吗?它是广泛而有用的。

当您OPTIMIZE TABLE对InnoDB表运行时,它将输出Table does not support optimize, doing recreate + analyze instead消息。

从文档中:

OPTIMIZE TABLE映射到ALTER TABLE,ALTER TABLE重建表以更新索引统计信息并释放聚簇索引中未使用的空间。

MySQL 5.1 OPTIMIZE TABLE语法


1
考虑到这一点,请skip-innodb按照我之前的文章中的建议在启用之前先确定您的引擎。
华纳

1
有趣的是,我搜索了很多次该主题的支持,但没有找到该信息。因此,实际上,mySQL文档并不是真的那么有用...。即使如此,我仍然看不到答案我的问题是如何使我的数据库正常运行而又无法优化数据库...
Dscoduc

2
该消息表明它正在优化表。之所以这么冗长,是因为它本质上是alter table语句的快捷方式,由于OPTIMIZE TABLE无法针对InnoDB运行,因此必须在MySQL的早期版本中使用它。为什么您认为需要优化表才能使数据库正常运行?
华纳2010年

5

您可以通过执行以下操作优化InnoDB表:

ALTER TABLE tablename ENGINE='InnoDB';

这将创建原始表的副本,将原始表删除,然后将新表放到原处。

这里有一些其他信息,其中包括您应注意的事项。

也可以在MySQL文档中找到。请参阅Dathan Pattishall在2004年5月25日下午4:41发表的评论,大约在页面下方。

尽管这样做是安全的,但您应该首先进行备份和测试。


2
这产生与OPTIMIZE TABLE在MySQL中针对InnoDB表运行完全相同的结果。
华纳2010年


2

OPTIMIZE确实适用于InnoDB。至少现在是这样。这是5.6文档:

对于InnoDB表,OPTIMIZE TABLE映射到ALTER TABLE,ALTER TABLE重建表以更新索引统计信息并释放聚簇索引中未使用的空间。

阅读:优化表

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.