现在的位置: 首页电子电脑>正文
8个实用的WordPress数据库技巧
2010年05月31日 电子电脑 暂无评论


(txt版本)
  近10年,MySQL数据库广受网络大众欢迎。现在,所有的WordPress博客(包括日志,设置,评论等)都由MySQL数据库支持。
  虽然插件和代码修改能帮助我们解决一些问题,但有时我们也不得不用phpMyAdmin 中的SQL命令或直接通过SSH访问数据库来解决问题。这篇文章将向大家介绍对WordPress较有用的8个SQL修改。其中每个修改版块都提出了一个问题,并给出解决方案和注解。

   1 、备份数据库
  问题:尽管本文中所有的技巧都经过测试,但是在尝试前请务必首先备份MySQL数据库。
  解决方法:手动备份数据库,请按以下步骤操作:
  1、登陆phpMyAdmin,选中要备份的数据库。
  2、点击水平菜单上的“导出”按钮。
  3、选择压缩方法(我本人使用gzip),然后单击“执行”。
  4、服务器接着会询问你是否下载备份,点击“是”,然后把它存储到硬盘。
  注解:使用WP-DB-Backup插件执行数据库备份非常方便。WordPress用户可以安装这个插件并定期备份数据。
  2 、批量删除日志修订本
  问题:日志修订本是2.6的新增功能,虽然十分有用,但这也增加了MySQL数据库的负担。你当然可以手动删除修订本,但这将十分麻烦且耗时过长。
  解决方法:这个解决办法非常简单。我们可以使用SQL语句批量删除日志修订本。
  1、登陆phpMyAdmin,选中你的WordPress数据库。
  2、单击“SQL”按钮。把以下窗口中的命令复制粘贴到SQL命令下:
  DELETE FROM wp_posts WHERE post_type = "revision";
  3、完成了!删除掉的日志为你腾除了大量数据库空间!
  注解:wp_posts 表格包含一个名为post_type 的字段。这个字段可被赋予诸如日志,页面,修订本的值。当我们需要删除日志修订本时,只要运行wp_posts表格中相对应的修订本删除语句就行了。

  3 、快速删除垃圾评论
  问题:我的一个朋友前不久开通博客后,一直在网上努力推广他的博客。 在他外出度假归来时,竟发现自己有5000多条评论等待审核!当然,其中多数都是垃圾广告。但他认为自己不得不逐个审核以防删除了正常评论。
  解决方法:庆幸的是,他把这个问题告诉了我。当我告诉他可以使用 SQL时,他已经审核45分钟了。
  1、登陆phpMyAdmin,选中你的WordPress数据库。
  2、单击“SQL”按钮。把以下窗口中的命令复制粘贴到SQL命令下:
  DELETE from wp_comments WHERE comment_approved = "0";
  3、完成了!现在可以享受清洁无污染的数据库环境了!
  注解:wp_comments表格中包含名为comment_approved的域,它是一个boolean值(1或0)。通过审核的评论值为1,等待审核的值为0.运行以上语句,其实就是删除还没有通过审核的评论。
  此操作要谨慎执行。以上语句不仅能帮我们删除大量垃圾评论,同时也会删除无效的没有通过审核的评论。如果你还没有使用Akismet,现在就安装以打击垃圾评论吧。
  4 、更改日志属性
  问题:管理帐户在安装WordPress时就已创建。但许多博主把这个帐户误以为就是写日志的帐号,以致到后来才发现这不是私人帐号。
  解决方法:更改所有日志的作者属性要花费很多时间,但使用SQL就不用这么麻烦了。
  1、登陆phpMyAdmin,选中你的WordPress数据库。
  2、首先,打开SQL语句窗口,执行以下命令以获取正确的作者ID:
  SELECT ID, display_name FROM wp_users;
  3、phpMyAdmin会显示许多WordPress用户的ID。其中NEW_AUTHOR_ID是最近写日志的作者的ID, OLD_AUTHOR_ID是原始管理员的ID。
  4、交换NEW_AUTHOR_ID 和 OLD_AUTHOR_ID ID后,运行以下语句:
  UPDATE wp_posts SET post_author=NEW_AUTHOR_ID WHERE post_author=OLD_AUTHOR_ID;
  5、完成了!以前的日志属性现在已改为你刚刚设置的了!
  5、 手动重设密码
   问题:为了增加博客安全性,许多博主选择不易被破解的密码,如u7*KoF5i8_。这当然很好,但问题在于博主自己忘记密码的事情也时常发生啊。
  解决方法:密码丢失后,WordPress会给你邮箱发送密码重设链接。但如果你在注册时使用的邮箱现已不可用,或你想使用简单语句执行这个操作的话,可参考以下步骤:
  1、登陆phpMyAdmin,选中你的WordPress数据库并打开SQL窗口。
  2、输入以下语句(假设你的用户名是“admin”):
  UPDATE wp_users SET user_pass = MD5('PASSWORD') WHERE wp_users.user_login ='admin' LIMIT 1;
  3、完成了!你的密码已更改成功。
  注释:用户密码存储在wp_users表格中。当然,WordPress使用了MD5哈希保护密码。
  我们要使用“UPDATE” SQL语句和内置的MD5() MySQL函数来把密码转化为MD5算法形式,然后更新。“WHERE”从句使系统只更新管理员的密码。不带有“WHERE”从句会导致系统更新所有的密码。
  6 、更改域名
   问题:虽然我们并不主张这样做,但也许有时你需要在保留博客和数据的同时改变博客的域名。由于WordPress把域名存储在数据库中,所以为了把新域名和博客连接起来,你必须更改数据库。
  解决方法:
  1、登陆phpMyAdmin,选中你的WordPress数据库。
  2、点击“SQL”,打开SQL命令窗口,输入以下命令更改URL:
  UPDATE wp_options SET option_value = replace(option_value, 'http://www.oldsite.com', 'http://www.newsite.com') WHERE option_name = 'home' OR option_name = 'siteurl';
  3、使用以下语句替代所有日志的相对URL(guid全局唯一标识符)
  UPDATE wp_posts SET guid = replace(guid, 'http://www.oldsite.com','http://www.newsite.com');
  4、搜索wp_posts表并替代其中的URL,以确保没有老的URL存在了:
  UPDATE wp_posts SET post_content = replace(post_content, 'http://www.oldsite.com', 'http://www.newsite.com');
  5、完成!现在可以使用新URL登陆WordPress控制台了。
  注解:为了更快地更改WordPress域名,我选择使用超级有用的MySQL函数“replace,”,这会完全替代所有需要替代的内容。
  7 、在博客上显示SQL查询数量
   问题:了解输入到数据库的查询数量对优化博客载入时间非常重要。为了减少查询,我们首先要知道单个页面的查询数量。
  解决方法:
  1、打开主题中的footer.php文件,添加以下代码:
  <?php if (is_user_logged_in()) { ?>
    <?php echo get_num_queries(); ?> queries in <?php timer_stop(1); ?> seconds.
  <?php } ?>

  2、保存文件,然后访问博客。在页脚,系统已经显示WordPress数据库的查询数目,及查询所用时间。
   注解:许多用户似乎都不了解这个功能。get_num_queries()函数会显示页面载入时执行的查询数目。
  以上代码只会对注册用户显示查询数目,因为访客和搜索引擎并不需要知道这些内容。但如果你想公开的话,直接删除if (is_user_logged_in())这个条件语句就可以了。
  8 、恢复WordPress数据库
  问题:如果修改或升级过程或其它原因造成了博客数据的丢失或损坏,希望你有备份的数据库。这样,你可以把备份的数据库导入到数据库中以弥补损失。
  解决办法:
  1、登陆phpMyAdmin,选择你的WordPress数据库。
  2、单击水平菜单上的“导入”按钮。
  3、点击“浏览”,选择硬盘上最新备份的数据库。
  4、单击“执行”。如果一切正常的话,你的数据库现在已在运行了!
-----------------------------------------------------------------

禁用WP文章修订版本和自动保存功能

  大家在发表和编辑文章的时候,可能都不喜欢WordPress 自动保存(AutoSave)和文章历史修订版本(Revisions)的功能。一方面网速不好的时候,它会影响编辑和发表文章页面的加载速度;另一方面这些文章的历史修订版本都会写入数据库保存,无形中大大增加了数据库的膨胀速度,冗余数据太多也影响数据库的存取查询效率。wp管理后台并没有提供关闭功能选项。那么如何禁用WordPress自动保存和文章历史修订版本功能呢?这也是WordPress优化数据库第一步要做的内容。
  首先我们可以使用WordPress插件,禁用自动保存和关闭文章修订版本的插件有很多,如果你不想安装插件,那也可以手动修改代码关闭和禁用WordPress自动保存和文章修订版本功能。
  目前,关于修改文件来关闭WordPress 自动保存功能(AutoSave),本人不建议这么做,麻烦不说,WP的升级最近也挺快的,效果不是很好!
  清理数据库中以前的文章历史修订版本
  另外你也可以通过phpmyadmin定期清理和删除数据库中的冗余文章修订版本,清理以前的文章修订版本也一样。数据库操作前最好先进行备份。在 phpmyadmin 中进行数据库管理,SQL语句命令行中写入以下运行代码执行(若你设置了数据库表名的前缀,需要将数据表名称中wp改成你的前缀): 

1 delete from wp_posts where post_type='revision';

另外还可以再用SQL语句:

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

  删除数据库中文章特殊数据表wp_postmeta中meta_key字段为_edit_lock(代表上次修改post的修改时间)和_edit_last(指最后一次编辑时间)的数据,然后全选所有表,下拉列表中选择使用phpmyadmin“优化表”功能。

--------------------------------------------------------------------------------------------------------------

Wopus问答

给我留言

留言无头像?


×
腾讯微博