wordpress数据库优化记录

周四 30 八月 2012 by Joshz

前段时间发现备份的数据库大小日渐庞大,对一个几乎长草的博客而言实在很诡异,所以抽空进行了一次后台大扫除。这里把基本的流程记录下来,供对数据库操作没有经验的朋友参考。

基本流程如下:

1、备份。做任何数据库操作前,做一个临时备份都是必要的。使用phpmyadmin按默认设置导出sql文件下载到本地即可。

2、删除不必要的插件。不必要的插件应当越少越好,尤其是会写入数据库或者查询数据库的插件。比如我之前使用过的statpresscn,这个插件会在数据库中建立一个庞大的wp_statpresscn表,虽然没有前台查询,不过它造成的数据库冗余带来的坏处可远远大于统计功能带来的便利,所以还是删了吧。

3、删除垃圾数据表。功能比较复杂的插件可能会在数据库中建立新表,删除插件一般不会把这些表顺带删除,所以手动排查垃圾数据表也是必要的。为了防止误删,请一定对照WP Codex的数据库描述进行修改。

删除akismet垃圾数据。关于akismet如何产生这些数据可以参考wp_commentmeta是否正在拖慢你的blog

delete from wp_commentmeta where meta_key='akismet_as_submitted' or meta_key='akismet_history' or meta_key='akismet_rechecking' or meta_key='akismet_result' or meta_key='akismet_user' or meta_key='akismet_user_result

wp_options数据表清理。主要有两部分垃圾数据:其一、已删除的插件选项。大部分插件都不提供完全的删除功能,主要就是针对数据表而言。由于不清楚数据和插件的对应关系,最好不要盲目删除,如果一定要清理,可以尝试用clean options插件,注意备份!其二、没用的RSS Feed Cache。以“_transient”开头的数据都是因为用了RSS小工具产生的,作用不大,体积却不小。可以用下面的SQL语句删除:

DELETE FROM wp_options WHERE option_name REGEXP "_transient_

4、优化数据表。最后还要利用phpmyadmin执行优化数据表,体积还会有所减小。