过去10年来,MySQL数据库以令人难以置信的速度在网络上流行起来。每一个WordPress博客都由MySQL数据库驱动,存储博客日志、设置、评论等内容。
面对WordPress,虽然插件或编码技巧可以解决一些问题、完成某些任务,但是有时除了通过phpMyAdmin或SSH执行SQL语句外,你别无选择。下面让我们来看看WordPress实用SQL语句集锦。本系列文章的每个篇章都严格按照提出问题、解决问题、解释说明的思路撰写,以使读者真正了解掌握解决问题的方法,达到举一反三的效果。
1、创建数据库备份
问题。尽管本文论及的所有语句已经过测试,我们仍然应当先备份MySQL数据库,再尝试执行这些语句。
方案。要手工创建一个WordPress数据库备份,请按照下列步骤进行:
1、登录phpMyAdmin,选择WordPress数据库。
2、接着在横向列示的菜单上点击“导出”按钮。
3、选择压缩方法(我个人习惯使用gzip),然后点击“执行”按钮。
4、浏览器会提示是否需要下载备份文件。选择“是”,然后将该文件储存在硬盘驱动器上。
解释。需要注意的是,创建WordPress数据库备份的任务,可以通过WP-DB-Backup插件更容易地实现。每一个WordPress用户都应该安装此插件,并定期进行数据备份。(译注:此提示虽显絮叨却是博客作者都应遵循的准则。因为主题或插件没了都可以再安装,但数据没了那么所有过往的努力都将付诸东流。)
2、批量删除日志修订记录
问题。修订版本是WordPress 2.6引入的功能,该功能虽然在某些场景下比较有用,但也增加了MySQL数据库的大小。尽管我们可以手动删除文章修订版本,但这是非常漫长而枯燥的工作。
方案。这个问题的解决方法很简单:我们通过执行简单的SQL查询来批量删除日志修订记录。如果你有很多的日志,其结果可能令人难以置信:数据库的大小将减少一半!
登录phpMyAdmin,选择WordPress数据库。
点击“SQL”按钮。将以下代码粘贴到SQL命令窗口:
DELETE FROM wp_posts WHERE post_type = "revision"; |
大功告成。最终节省的数据库空间大小取决于博客文章数的多少。
解释。wp_posts表有一个名为post_type的字段。此字段有几个取值,如“post”、“page”或“revision”。想要去除文章修订版本,只需运行一个命令以删除wp_posts表中,post_type字段等于“revision”的记录。
接下来我们分析关于批量删除待审核评论和变更日志归属的SQL命令。
3、瞬间删除5000条垃圾评论
问题。真人真事:我的一个朋友最近搭建了自己的博客,并开始在网上四处推广。经过几个星期的紧张工作,他休了几天假没有上网。
回到家里他看了看博客,结果看到...超过5000条待审核评论!当然,其中大多数是垃圾评论,本来他打算逐一检验,以确保不会删掉一般读者的有效评论。
方案。令人高兴的是,友人把他的垃圾留言问题告诉了我。在我向他展示下面这条有用的SQL语句前,他已经花了45分钟手工删除垃圾评论。
登录phpMyAdmin,选择WordPress数据库。
点击“SQL”按钮。将以下代码粘贴到SQL命令窗口:
DELETE from wp_comments WHERE comment_approved = '0'; |
向垃圾评论说再见!享受未受垃圾评论侵扰的数据库吧!
解释。wp_comments表包含一个名为comment_approved的字段,取布尔值(1或0)。通过审核的评论该值为1,待审核的评论取0值。通过运行上面的命令,我们删除了全部待审核评论。
谨慎行事。如果你有一大堆垃圾留言需要删除,这种解决方案是非常有用的,但也可能删掉未经审核的有效评论。因此,如果你还没用上Akismet,马上安装它以阻止垃圾评论的骚扰。