优化WordPress数据库

WordPress的文章、评论等很多数据都是存放在数据库的,所以搭建wordpress网站的时间,网站的空间不需要多大,而数据库一定要充足,而在WordPress数据库中主要使用 wp_posts 表来存储日志,页面,附件,导航菜单等数据,根据使用的时间越来越长,堆积的数据越来越多,从而运行起来也越来越慢,那么我是十分有必要对 WordPress数据库来进行整体的优化下。

优化步骤

1、温馨提醒优化之前切记先备份下数据
2、删除所有日志修订 影响wordpress运行速度的根源在于日志的修订记录,一百多篇文章会有一千多条的日志修订的记录,所以此步优化必须做,提速效果非常明显。执行以下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'

3、优化 wp_posts 表 写文章的时候进行的插入、更新或删除等都会产生不同大小的记录碎片,整理碎片这步要做。执行以下SQL语句:

OPTIMIZE TABLE
wp_posts;

4、删除所有垃圾留言 这个可以在后台一条一条的删除,也可以到MySQL执行下也行:

DELETE FROM wp_comments WHERE
comment_approved != '1';

5、删除没有的标签 有些文章删除了,但标签还在,WordPress不会自动删除的,我们手动清理下吧, 执行以下SQL语句:

SELECT * FROM wp_terms wt
INNER JOIN wp_term_taxonomy wtt ON wt.term_id=wtt.term_id
INNER JOIN wp_term_relationships wtr ON wtr.term_taxonomy_id=wtt.term_taxonomy_id
LEFT JOIN wp_posts wp ON wp.ID=wtr.object_id
WHERE taxonomy='post_tag'
AND ID IS null
AND NOT EXISTS(SELECT * From wp_terms wt2
INNER JOIN wp_term_taxonomy wtt2 ON wt2.term_id=wtt2.term_id WHERE wtt2.parent=wt.term_id) ORDER BY name;

6、删除没用的 postmeta 记录 当文章的记录删除后,还有日志扩展表postmeta的数据还没有删除,也人工清理下吧,执行以下SQL语句:

DELETE pm FROM wp_postmeta pm LEFT JOIN
wp_posts wp ON wp.ID = pm.post_id WHERE wp.ID IS NULL

7、WordPress残留垃圾数据删除

DELETE FROM wp_postmeta WHERE meta_key = '_edit_lock';
DELETE FROM wp_postmeta WHERE meta_key = '_edit_last';

通过以上数据库命令优化,你的数据库是不是已经很小了呢,网站速度是不已经得到提升了呢,记得不要让自己的网站太过臃肿,以免影响访问哦。