有一种很常见的情况是在一个旧的和大型的WordPress网站上,自动加载的设置远远超过了必要的规模。其实就是WordPress网站在平时安装插件或者主题的后,自带了很多自动加载的表,结果每次都会加载,哪怕你删除了这个插件,这些自动加载的情况仍然出现。

原文链接:清理和优化WordPress网站数据库wp_options表和自动加载的数据 - 搬主题

你的WordPress网站可能因为查询或自动加载的数据而导致加载时间比平时长。当我们在增强数据库性能的时候,我们往往忽略了这个最重要的即清理你的wp_options和自动加载的数据。

在这篇文章中,搬主题将告诉你如何清理你的wp_options表和自动加载的数据,并显著提高你的数据库性能。毕竟自动加载的数据可能会减慢和影响你的网站性能。

下面你将了解什么是基本的wp_option表,你的网站应该包含多少数据,以及如何清理wp_options表和自动加载的数据。

什么是wp_options表

对于你的WordPress网站,wp_options数据库存储了各种数据,包括:

  • 网站网址、主页网址、默认类别、管理员电子邮件、时间格式和每页文章
  • 主题、小工具、插件的设置
  • 暂时缓存的数据和文件等。

表中包括以下字段

WP OPTIONS表中的autoload字段是需要了解的最重要的概念。这个字段的值可以是YES或NO,带有YES的ROW将自动加载所有使用wp加载所有选项的网页上的数据,并最终拖累你的网站。

什么是自动加载的数据?

顾名思义,自动加载的数据是指在你的WordPress网站页面加载的每一页上自动加载的数据。如果wp_options数据库有大量的自动加载数据,WordPress网站可能会遇到问题。

尽管每个插件最好都在每个页面上加载它的数据,但对于开发者来说,自动加载参数默认设置为 "是"。如果wp_options数据库有大量的自动加载数据,WordPress网站可能会遇到问题。

多少数据是过量的自动加载数据?

这应该是在300KB - 1MB之间的大小。如果你达到3-5MB或更大的范围,可能有一些东西可以被优化或从自动加载中取出。而任何大于10MB的东西都需要直接处理。

导致自动加载数据的原因

一个插件或主题作者将数据加载到wp_options表中,而不是使用他们自己的表。一些开发者喜欢不创建新表的插件。然而,WP选项的设计并不是为了处理成千上万的行。

wp选项表仍然包含了已经从WordPress网站上删除的插件或主题的选项。这可能导致查询不需要的自动加载的数据。尽管自动加载的选项可能有好处,但它们也可能是有害的。一些插件在停用或从WordPress中删除时,不会清除它们的自动加载选项,而且一些插件实际上不需要所有的设置都被自动加载。

如果你有超过建议的自动加载数据,那么肯定需要清理你的wp_options表中的所有自动加载数据。此外,建议你努力减少wp_options表中的记录数量。在删除任何数据之前,请总是创建你的数据库的备份。如果你对自己这样做没有信心,我们通常建议雇用一个WordPress开发人员。

如果想直接用WordPress插件进行优化,可以参考这里【WordPress网站打开慢卡顿?数据库优化加速图文教程】

数据被一个插件自动加载,而实际上它应该被设置为 "NO"。

如何检查wp_options表中的自动加载数据

这里以CyberPanel控制面板为例,当然你也可以找到自己网站后台相应的控制面板。

  • 打开你的CyberPanel仪表板
  • 从右手边点击WordPress
  • 选择列表WordPress
  • 点击WordPress列表后,你会看到你已经部署的WordPress网站。选择你想优化数据库的网站。
  • 一旦你选择了你的WordPress网站,点击数据库标签。
  • 看到你的数据库名称,现在这是你选定的WordPress网站的数据库。我们将通过PHPmyadmin访问这个数据库并优化wp_options表。

看到你的数据库名称后

  • 从左手边点击数据库
  • 选择PHPmyadmin
  • 从左手边点击你的数据库名称
  • 从左侧菜单中选择wp_options
  • 从顶部菜单选择SQL
  • 添加以下SQL查询并点击GO
SELECT SUM(LENGTH(option_value)) as autoload_size FROM wp_options WHERE autoload='yes';

在这里你会看到你的自动加载总大小(KB),如果它超过3000KB(这意味着超过2MB),那么你就应该寻找数据库的优化。

你也可以添加一个较长的查询,按大小检查前十个条目

SELECT 'autoloaded data in KiB' as name, ROUND(SUM(LENGTH(option_value))/ 1024) as value FROM wp_options WHERE autoload='yes'UNIONSELECT 'autoloaded data count', count(*) FROM wp_options WHERE autoload='yes'UNION(SELECT option_name, length(option_value) FROM wp_options WHERE autoload='yes' ORDER BY length(option_value) DESC LIMIT 10)

上面的查询结果显示了最主要的键,你可以在图片中看到。

下面是你可以用来按长度列出前10个值的SQL命令。

SELECT option_name, length(option_value) AS option_value_length FROM wp_options WHERE autoload='yes' ORDER BY option_value_length DESC LIMIT 1

你可以看到option_name rewrite_rules的长度最大,为9153,可以检查一下这个值是否可以被优化或删除。

如何清理wp_options表

像我们之前做的那样,你需要登录到PHPmyadmin。在左侧点击你的数据库,然后点击SQL标签。然后输入以下命令并点击 "Go"。

SELECT * FROM `wp_options` WHERE `autoload` = 'yes'

如果你的WordPress网站使用wp_以外的前缀,你可能需要修改上面的查询。wp选项表的整套自动加载数据将以这种方式显示给你。

在这种情况下,重新安装该插件,选择其自动清理选项,然后适当地删除它,有时可能更安全和简单。不过,我们将演示如何手动清理这些表格。

当我们滚动浏览这些行时,我们注意到网站不再使用或安装的各种插件。我们只是把它作为一个例子,但在这个例子中,我们看到了很多状态的行。在被质疑的网站上,status已经不再使用了。

使用这个命令

SELECT * FROM `wp_options` WHERE `autoload` = 'yes'AND `option_name` LIKE '%status%'
  • 你可以改变文件名的结尾词,例如,状态变成电子邮件来清除它。

清理暂存记录

wp_options表是WordPress保存临时记录的地方,除非你使用对象缓存。这些记录通常有一个过期日期,应该随着时间的推移而消失。不过,情况并不总是这样。在我们看到的几个数据库中,已经发现了数以千计的过时的临时记录。同样至关重要的是要记住,暂存记录并不总是自动加载的。为了确定是否有任何自动加载的暂存数据,你可以执行与下面类似的查询。

SELECT * FROM `wp_options` WHERE `autoload` = 'yes'AND `option_name` LIKE '%transient%'

同样地,你可以使用删除查询来清除不再需要的暂存器。

检查网站

此外,在删除某个表的条目之前,尽量创建一个完整的数据库备份。在删除数据库内容后,在前端测试网站同样至关重要。确认你的网站运行良好,不干扰任何插件或主题的功能。根据你从wp_options表中删除的条目数量,网站实际加载的速度会有所不同。即使你应该删除几百条记录以达到清洁目的,也可能不会有太大的区别。然而,数以百万计的条目被删除将大大降低网站的加载速度。

最后总结

你的WordPress网站的加载时间可能比平时长,因为有查询或自动加载的数据。我们有不同的方法和命令来清除多余的或自动加载的数据。当你清理了你的wp_tables和自动加载的文件,你将能够增强你的数据库性能。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部