★硬邦邦成人网站,如果你年龄未满18岁请立即离开!★网站图片可能需要翻墙观看。★网站评论审核比较慢 大家耐心等待 ★xxshe.club xxshe.info xxshe.top 为硬邦邦备用域名大家请牢记

WordPress优化系列之“清理数据库”

新闻资讯 alect 10年前 (2011-03-24) 798次浏览 45个评论 扫描二维码

WordPress 优化系列之“清理数据库”

自从 09 年开始我就负责 jimmy 同学的和邪社的网站服务器搭建以及各种对 WordPress 的优化工作,首先要说明一点,本人并非编程或者是 DBA 方面的砖家,所以对和邪社的优化也是循序渐进的一个学习的过程,更让人头大的事情则是和邪社目前已经有 5700 篇日志和超过 91000 条评论,服务器的压力相当之大,所以对系统性能以及合理的配置要求相当的严格,如有不慎就会造成 404 或者是 500 亦或是 502 错误,甚至造成服务器宕机,也就是之前 jimmy 同学频繁的被主机商停止服务的原因。今天的这个 WordPress 优化系列之“清理数据库”只是一个开头,全部来源于之前对和邪社进行优化所得来的经验以及教训,以后还有其他相关的文章。之前 jimmy 就跟我提到写一下 WordPress 的相关优化技巧,造福各位博客主,于是就有了今天大家看到的 WordPress 优化系列之“清理数据库”。既然是 WordPress 优化系列,肯定有方方面面需要照顾到,比如选择正确的插件,减少数据库请求次数,如果最大限度的提升加载速度等等,今后的一个月时间里面,我会尽量把方方面面需要说明清楚的内容都写出来。今天就先讲一下最容易也是最需要亟需解决的一个问题,那就是日益增长的数据库问题。

我对这方面的经验为零(指的是在与和邪社结缘的 2009 年之前),完全的从零开始,甚至在接手和邪社之前完全没有接触过 linux 或者是相关的一些技术,比如 Nginx(Apache)的优化配置,数据库(MySQL)的理论知识以及相关的配置等等等等。只因从一台完全空白的服务器(仅有 linux 或者是 Windows)到一个完整的 WordPress 博客是一个相当“艰巨”的过程。而这篇文章提到的内容肯定不可能非常完善,以后我会逐步的将其充实起来。

WordPress 优化系列之“清理数据库”

和邪社目前已经有 5700 多篇日志和超过 91000 条评论,MySQL 数据库的总大小已经超过了 100 多 MB,从上图可以看到和邪社的数据库大小已经到了 131M(这个很久之前的截图,现在的数据库因为已经清理完毕,所以很小了),这么“庞大”的数据库到底有多少有用呢?下面就开始一步步优化我们的数据库。

清理 wp-commentmeta 表

WordPress 现在已经发展到了 3.1 版本,而如果是从 2.X 系列就开始使用 WP 的用户则会发现数据库增长的比例跟文章发布的数量不成比例,原因当然有很多。我们首先要清理的是 wp_commentmeta 这个表,在 2.9 版本之前,这个表完全不存在,先来看看它的内容,浏览表结构可以发现其为 akismet_history、akismet_result、akismet_as_submitted 等,很显然,这个是 WP 官方推荐的反垃圾评论插件 Akismet 所生成的,其值的作用是记录管理员用户对垃圾评论的处理结果以及插件自动判断某条评论是否为垃圾评论的相关记录。

从上面的截图中可以清晰的和邪社的 wp_commentmeta 这个表已经有近 50000 条记录了!大小竟然超过 50MB,比评论内容表 wp-comments 还大一倍(wp-comments 这个表存放的都是访客的评论内容)。经过实验,清空这个表对 WP 程序完全没有任何影响(进行以下操作之前切记事先备份数据库)。在 MySQL 管理器也就是 phpMyAdmin 里面输入一条简单的命令即可清除。进入数据库运行 MySQL 语句查询,

WordPress 优化系列之“清理数据库”

TRUNCATE TABLE `wp_commentmeta`

执行此操作后,可以从下图中看到 wp-commentmeta 这个表的大小已经变为 4.0KB 了,也就是已经清空,省去了 50 多 MB 的空间。这一操作对 WP 博客的运行完全没有影响,建议留言比较多而且又启用了 Akismet 插件的用户每隔一段时间就清理一次这个表。对 wp-commentmeta 表的清理工作到此结束。来看看其它可以清理的内容。

WordPress 优化系列之“清理数据库”

清理 Revision Post(日志修订)

Revision Post 是 WordPress 在 2.6 版之后加入自动保存日志修订版造成的,您每修改一次日志,就会增加一个 revision , 如果您修改多次,数篇日志之后,这将是一个很可怕的数量!您如果有上百篇的日志,您的冗余 revisiong 可能会有上千篇之多!(此描述来自插件 delete-Revision manager)这里我们使用一个简单好用的插件来清理,Delete-revision Manager(WP 官方扩展链接),安装此插件后,运行该插件可以清楚的看到目前数据库里面所保存的日志修订。

WordPress 优化系列之“清理数据库”

只需简单的按下“yes,我要删了它!”即可,和邪社的 WP 后台显示的为“您已经发布了 5726 篇日志,截止目前,Delete-Revision 已轻松删除了 1172 篇冗余日志,祝您愉快!”OMG,如果这 1000 多篇修订日志全都储存在数据库里面该会占用多少空间啊!此外修改 wp-config.php 文件,在合适的位置插入这一行参数:

define('WP_POST_REVISIONS',false);

比如我是插入在 define (‘WPLANG’, ‘zh_CN’);的后面,这一个参数的设定是禁用日志修订功能(不可完全禁用),虽然还可以继续更深入的完全禁用自动保存功能产生的修订存档,但是个人不太支持,所以这里不做讨论了。

彻底优化清理 wp_options

关于这个表,如果你不是砖家级的人物,建议直接跳过,因为这个操作这个表的危险性比较大。此表用来存储 WP 设置相关的信息,如地址、插件设置等等。但是因为各位的“折腾”,这个表会因为频繁的尝试安装/禁用各种插件变得臃肿不堪。十分影响数据库运行速度。因危险性较大,我不做阐述,如果确实喜欢折腾,请去此链接查询方法。(http://zww.me/archives/25324

清理 wp_postmeta

可能有很多东西你想保存到你的一些日志中 — 你写日志时候的心情 ,你当时听的歌曲,你所处的地理位置,一些相关日志的列表,特定为搜索引擎指定日志信息等等。所以这些东西都会保存到wp_postmeta 这个表中。关于这个表的清理可以借助插件 WP-Cleanup 完成。执行下列相关的 MySQL 指令则可以进一步的清理出无用的数据。

WordPress 优化系列之“清理数据库”

DELETE FROM wp_postmeta WHERE meta_key = '_edit_lock';
DELETE FROM wp_postmeta WHERE meta_key = '_edit_last';
DELETE FROM wp_postmeta WHERE meta_key = '_revision-control';

WordPress 数据库相关的清理工作到此就告一段落,其他关于 WordPress 数据库的优化技巧也还有很多,牵扯到了系统底层方面以及需要借助插件完成。所以此系列的下一个教程则为“如何选择合适的插件”。

永远记住一句话:做好备份!只有做好备份工作才可以有备无患。


硬邦邦 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:WordPress 优化系列之“清理数据库”
喜欢 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到
(45)个小伙伴在吐槽
  1. 多亏这一年多来由alect大总管的协助 不然都不知道和邪社身在何处了?
    Jimmy2011-03-24 17:05 回复
    • @Jimmy, 敬礼!
      雙身人2011-03-24 22:41 回复
  2. 大总管V5啊!当然对于这些我还是看不懂...
    KK2011-03-24 17:07 回复
  3. 这么技术的文章用这么吸引人的图片真的大丈夫?
    lowkey2011-03-24 17:11 回复
    • @lowkey, 大丈夫 萌大奶
      臭猫2011-03-24 19:46 回复
  4. 我是来看题图的=v=
    KyoHiroki2011-03-24 17:14 回复
  5. 其实我没看完,我还是先收藏了。。。
    B.K2011-03-24 17:15 回复
  6. 我望着4g的论坛数据库惊叹~~~
    SquallATF2011-03-24 17:45 回复
  7. 用WP-Optimize插件的撸过……
    星野苍真2011-03-24 17:59 回复
  8. - -总管威武
    omi2011-03-24 18:10 回复
  9. picasa外链杯具了。。。有几张叉骚包了,不过直接右键点属性,复制地址后可以打开。。。 不知道到为什么picasa外链总是杯具。。。谁是技术帝求告知
    飞翔的板凳2011-03-24 18:25 回复
    • @飞翔的板凳, 国内莫非能上picasa了?
      Reilee2011-03-24 19:08 回复
      • @Reilee, 能的啊 ,https就行
        飞翔的板凳2011-03-24 19:55 回复
        • @飞翔的板凳, G图经常性会被X,我也一直不敢用Picasa图床= =
          azusa2011-03-24 19:57 回复
          • @azusa, 嗯 。。。谁有好一点的图站,只要不是总发神经
            飞翔的板凳2011-03-24 20:02
          • @飞翔的板凳, SD图床应该最稳定的了= =貌似没被河蟹过?而且图能全尺寸上传~(不过我用的还是FK)
            azusa2011-03-24 20:11
          • @azusa, sd图床。。。那个有全称吗?找不到啊
            飞翔的板凳2011-03-24 23:16
          • @飞翔的板凳, 微软的SkyDrive = =。。。
            azusa2011-03-24 23:19
          • @azusa, 额。。。居然不知道SkyDrive,查了下,我果然小白
            飞翔的板凳2011-03-24 23:50
  10. mysql 单表千万级的应用是没问题的,要优化,最简单就是添加select 的 查询索引,能开发个WP memcached的插件, 和谐社的这个数据量不算很厉害
    阿德哥2011-03-24 18:30 回复
    • @阿德哥, 嗯。说的对。以后慢慢来。。
      alect2011-03-24 18:33 回复
  11. 和邪社的访问量和PV有多大?连接池,线程数之类的参数怎么取的?有没有什么经验数值啊?
    都市渣子2011-03-24 18:45 回复
    • @都市渣子, 用的不是Windows……
      alect2011-03-24 18:48 回复
      • @alect, 我知啊,linux下数据库也有配置参数吧?
        都市渣子2011-03-24 23:20 回复
        • @都市渣子, 我以后写个全面的吧……列入计划……
          alect2011-03-24 23:52 回复
  12. これであなたも自分の「社」を立ち上げるよ!(嘘)
    Cっち2011-03-24 19:37 回复
  13. 正在学MSSQL的路过。。。。。。。/w\ WP数据库优化确实重要啊。。。A大学习了~ 其实那些SQL指令相对高级编程语言神马的还是很容易了的。。。= =
    azusa2011-03-24 19:51 回复
  14. 忘了主数据库密码的飘过……
    宅男的爱2011-03-24 20:06 回复
    • @宅男的爱, :-),你看下wp-config.php文件就能查到了。
      alect2011-03-24 20:17 回复
  15. 我承认我是进来看配图的。。。。。。
    抱鱼睡的猫2011-03-24 20:08 回复
  16. 为何看到题图我第一眼想到了丰崎爱生~话说Aki 的事业线应该没有这么深吧。。。。
    来看美女2011-03-24 20:59 回复
  17. 题图V5,文章看不懂
    un42011-03-24 22:05 回复
  18. 优化的是数据库啊~~但为撒好多图都叉烧包了,连和谐社logo也叉叉了,为嘛?
    steveninverse2011-03-24 22:49 回复
    • @steveninverse, google的图床,不太稳定……
      alect2011-03-24 22:53 回复
  19. 看到图我可耻的滚了进来...
    囧T2=32011-03-24 23:43 回复
  20. MARK,以后要用到
    茶干2011-03-25 01:53 回复
1 2