如何减少WordPress数据库的占用,以提升网站的性能呢?有两种方法可以清理和优化WordPress MySQL数据库,一种就是通过插件的方式,只需单击按钮就可以完成优化。比如WP-Optimize是用于自动清除WordPress数据库的插件,可以以使数据库以更高效率运行的非常有效的工具。而有些数据库优化工作,可能需要我们手动来进行。
下面的SQL语句,可以用于清除wordpress数据库中的垃圾,以减少数据库的占用,提升数据库的性能。这些语句均来自国外大神,据其所言,以下语句自身的网站使用没问问题,但是数据库操作对很多人来说还是存在风险的,各位可根据自身情况,酌情使用,牛奇网不对使用后果负责。
01 –清理“ wp_commentmeta”垃圾记录
wp_commentmeta用于记录所有评论的元信息,可执行如下语句来删除。
DELETE FROM wp_commentmeta WHERE comment_id NOT IN ( SELECT comment_id FROM wp_comments )
02 – 删除wp_commentmeta中的Akismet Related Metadata
Akismet Related Metadata是垃圾评论发布后,Wordpress会将垃圾评论发布者的IP地址等信息记录在数据库里。通过执行下面的语句来删除:
DELETE FROM wp_commentmeta WHERE meta_key LIKE "%akismet%"
03 –删除Comment Agent
默认情况下,每当有人在您的Wordpress网站上发表评论后,Wordpress会将评论者的一些信息,如浏览器,IP地址等保存到数据库里。对于大多数人来说,这些数据都没有任何意义,牛奇网建议将这些数据批量删除。执行下面的语句内容:
update wp_comments set comment_agent ='' ;
04 –关闭PingBack和TrackBack
PingBack和TrackBack的功能就是,当别人转载了你的文章并且在文章中保留了原文链接,那么Wordpress会通知你这个URL链向了你。我们在发布新文章的时候,如果我们在文章下方留下版权信息,并且留下了文章的链接地址,那么我们点击发布后,Wordpress也会通知我们。
DELETE FROM wp_comments WHERE comment_type="trackback";
通过WordPress后台也可以关闭此功能。打开“设置”»“讨论”页面,然后取消选中“允许其他博客发送链接通知(pingback和trackback)到新文章”。
UPDATE wp_posts SET ping_status = 'closed';
05 –删除未使用的标签
很多网站通过创建标签来优化一些关键词,但是现在关键词被用的越来越烂了,通过执行下面的语句,可以删除未被使用的标签。
DELETE FROM wp_terms WHERE term_id IN (SELECT term_id FROM wp_term_taxonomy WHERE count = 0 ); DELETE FROM wp_term_taxonomy WHERE term_id not IN (SELECT term_id FROM wp_terms); DELETE FROM wp_term_relationships WHERE term_taxonomy_id not IN (SELECT term_taxonomy_id FROM wp_term_taxonomy);
06 –删除Transients
WordPress的Transients API允许开发者在数据库中保存临时性的数据,以提升网站性能和降低服务器的负载。这个概念比较难理解,牛奇网页是翻遍了国内外中英文的各种说明,其中有个例子跟大家分享一下。
比如我们在Wordpress后台安装了一款对接百度统计的插件,可以直接在Wordpress后台查看网站的统计数据。通过Transients API我们可以将统计信息等内容缓存到我们的数据库,而不用每次我们访问后台统计的时候,都要重新向百度统计发送请求重新加载。 这样做的一个坏处就是,如果我们安装了很多插件和主题,长期积累下来会占用大量的数据库空间,降低网站的访问速度。因此,我们可以通过执行下面的语句,来删除不必要的Transients内容:
DELETE FROM `wp_options` WHERE `option_name` LIKE ('_transient%_feed_%')
07 –删除所有发布修订及其元数据
我们有的时候会对已经发布的文章进行更改,这些更改的版本信息会被记录在数据库的表中,如果长时间累计起来也会产生一些不必要的数据,我们可以通过执行以下语句将其删除:
DELETE a,b,c FROM wp_posts a WHERE a.post_type = 'revision' LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id) LEFT JOIN wp_postmeta c ON (a.ID = c.post_id);
以下查询将删除所有后期修订以及与修订关联的所有元数据。
08 –不要使用“admin”作为管理员用户名
很多Wordpress网站使用“ admin”用户名作为默认的管理员用户名,其实这样是存在安全风险的,最好将旧的“ admin”用户名更改为其他的用户名。
UPDATE wp_users SET user_login = 'YourNewUsername' WHERE user_login = 'Admin';
作者:牛奇网,本站文章均为辛苦原创,在此严正声明,本站内容严禁采集转载,面斥不雅请好自为之,本文网址:https://www.niuqi360.com/wordpress/8-sql-queries-optimization-wordpress-database/