你的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表中的自动加载数据
这里以宝塔控制面板为例,当然你也可以找到自己网站后台相应的控制面板。
- 打开你的宝塔控制面板
- 从左边点击数据库
- 选择对应的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表中删除的条目数量,网站实际加载的速度会有所不同。即使你应该删除几百条记录以达到清洁目的,也可能不会有太大的区别。然而,数以百万计的条目被删除将大大降低网站的加载速度。