如何清理和优化您的 wp_options 表和自动加载的数据

已发表: 2022-09-28

在本文中,您将学习如何清理 wp_options 表和自动加载的数据并显着提高数据库性能。 自动加载的数据可能会减慢并影响您的网站性能。

旧的大型 WordPress 网站上的自动加载设置很有可能远远大于必要的。 这也是以前使用过各种插件和主题或仅经过测试的网站的典型特征。

由于查询或自动加载的数据,您的 WordPress 网站可能需要比平时更长的时间来加载。 当我们提高数据库性能时,我们经常忽略这个最重要的,即清理你的 wp_options 和自动加载的数据。

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

目录

什么是 wp_options 表

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

  • 站点 URL、主页 URL、默认类别、管理员电子邮件、时间格式和每页帖子
  • 主题、小部件、插件的设置
  • 临时缓存的数据和文件等

表中包含以下字段

WP OPTIONS 表中的 autoload 字段是需要了解的最重要的概念。 此字段的值可以是 YES 或 NO,带有 YES 的 ROWS 将自动加载使用 wp load all 选项加载的所有网页上的数据,并最终减慢您的网站速度。

什么是自动加载数据?

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

尽管理想情况下每个插件都应该在每个页面上加载其数据,但对于开发人员来说,自动加载参数默认设置为“yes”。 如果 wp_options 数据库有大量自动加载的数据,WordPress 网站可能会遇到问题。

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

这应该在 300KB - 1MB 之间。 如果您达到 3-5 MB 或更大的范围,则可能有一些可以优化或取消自动加载的内容。 任何大于 10 MB 的内容都需要立即处理。

什么导致自动加载数据

插件或主题作者将数据加载到 wp_options 表中,而不是使用他们自己的表。 一些开发人员喜欢不创建新表的插件。 但是,WP 选项并非旨在处理数千行。

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

如果您有超过推荐的自动加载数据,那么肯定需要清理 wp_options 表中所有自动加载的数据。 此外,建议您努力减少 wp_options 表中的记录数。 在删除任何数据之前,请始终创建数据库备份。 如果您对自己做这件事没有信心,我们通常建议您聘请 WordPress 开发人员。

当数据实际上应该设置为“否”时,插件正在自动加载数据。

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

  • 打开您的 Cyber​​Panel 仪表板
  • 从右侧单击 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' UNION SELECT '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 选项表的整套自动加载数据将以这种方式显示给您。

始终阅读插件开发人员的文档,因为可能有一种方法可以清理任何剩余的表。 在这种情况下,重新安装插件,选择其自动清理选项,然后正确删除它有时可能更安全、更简单。 不过,我们将演示如何手动清除表格。

当我们滚动浏览这些行时,我们注意到该站点不再使用或已安装的各种插件。 我们只是将其用作示例,但在此示例中,我们看到了很多状态行。 在被质疑的网站上,状态已不再使用。

使用此命令

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 和自动加载的文件时,您将能够提高数据库性能。