InnoDB vs MyISAM用于大表Wordpress博客

时间:2011-02-25 06:11:26

标签: mysql wordpress innodb myisam

您好
我知道这个问题已经讨论过很多次了 但是我在WordPress博客中有一个大表的具体问题 我有大约50K的帖子,帖子标签超过100K 在进行搜索时,需要大量的内存和CPU资源 目前我正在将myISAM用于wp_posts和wp_posts_meta 所以我想知道你的意见,我应该把它改成InnoDB吗?

WordPress博客主机在我的vps上使用2GB RAM和4核CPU使用CentOS 5.我尝试优化MySQL配置以及使用数据库缓存插件。

InnoDB会解决我的问题吗?如果之前被问过,请原谅我。我只是想知道你的专家意见。

谢谢

伊万

3 个答案:

答案 0 :(得分:3)

清除帖子和页面修订将大大减少WP数据库的大小 - 在某些情况下高达90% - 速度很快。

在phpmyadmin中作为SQL查询运行以删除修订版;根据需要更改表格前缀:

DELETE a,b,c FROM wp_posts a LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id) LEFT JOIN wp_postmeta c ON (a.ID = c.post_id) WHERE a.post_type = 'revision'

然后优化所有表格。然后添加

define ('WP_POST_REVISIONS', FALSE);

靠近wp-config.php的顶部以禁用将来的修订。

答案 1 :(得分:2)

在慢速SELECT语句中使用EXPLAIN来查看查询计划。现在你可以猜到为什么事情变得缓慢并消耗掉所有记忆。你索引了正确的列吗?你的SQL写得正确吗?

当大多数活动是只读时,MyISAM应该没问题。 MyISAM还为您提供全文搜索,在这种情况下您可能需要的内容。 innoDB没有全文搜索。

答案 2 :(得分:2)

切换表格类型不会加快任何搜索速度。 InnoDB只会在您遇到锁定问题时提供帮助。由于博客数据变化不大,因此您不太可能遇到锁定问题。 听起来问题是全文搜索。我会寻找一个插件来添加一个全文索引并使用该索引进行搜索。