我们一起看看WordPress数据库中的wp_options表。当涉及到整体WordPress和数据库性能时,这是一个经常被忽视的领域。尤其是在较旧的大型网站上,由于第三方插件和主题留下的自动加载数据,这可能是导致网站查询时间变慢的罪魁祸首。查看以下有关如何检查、排除故障和清理wp_options表的提示。
wp_options表是什么?
wp_options表中包含的各种资料为你的WordPress网站,如:
- 站点URL、主页URL、管理员电子邮件、默认类别、每页文章、时间格式等
- 插件、主题、小部件的设置
- 临时缓存的数据
wp_options表
该表包含以下字段,我们在性能方面更关心其中一个字段:
- option_id
- option_name
- option_value
- autoload
解wp_options表的重要事项之一是autoload字段。这包含是或否值(标志)。这基本上控制它是否由wp_load_alloptions() 函数加载。自动加载的数据是在WordPress网站的每个页面上加载的数据。就像我们向您展示了如何禁止某些脚本在站点范围内加载一样,同样的想法在这里也适用。默认情况下,开发人员的自动加载属性设置为“yes”,但并非每个插件理论上都应该在每个页面上加载他们的数据。
WordPress网站可能遇到的问题是wp_options表中有大量自动加载的数据。这通常是以下原因造成的:
- 数据由插件自动加载,而实际上它应该设置为“no”。一个很好的例子就是联系表单插件。它需要在每个页面上加载数据还是只在联系页面上加载数据?
- 插件或主题已从WordPress站点中删除,但它们的选项仍留在wp_options表中。这可能意味着每次请求都会查询不必要的自动加载数据。
- 插件和主题开发人员正在将数据加载到wp_options表中,而不是使用他们自己的表。这方面存在争议,因为一些开发人员更喜欢不创建额外表的插件。但是, wp_options表也不是为保存数千行而设计的。
太多自动加载的数据是多少?这当然可以变化,但理想情况下,您希望它在300KB 到1MB之间。一旦开始接近3-5MB 范围或更多,很可能可以优化或删除自动加载的内容。任何超过10MB 的内容都应该立即解决。这并不总是意味着它会导致问题,但这是一个很好的起点。
对wp_options表中的自动加载数据进行故障排除
如果您的WordPress网站运行缓慢,可能是由于旧WordPress插件遗留的查询或自动加载数据。下面我们将向您展示如何检查数据库中自动加载的大小,以及深入了解实时站点的数据并分享我们为清理它所做的工作。
检查自动加载的数据大小
首先要做的是检查WordPress网站上当前自动加载的大小。为此,请登录到phpMyAdmin。单击左侧的数据库,然后单击SQL选项卡。然后输入以下命令并点击“Go”。
SELECT SUM(LENGTH(option_value)) as autoload_size FROM wp_options WHERE autoload='yes';
autoload_size将以字节为单位返回。KB中有1024字节,MB中有1024KB。所以在我们的例子中,249,025字节等于0.25MB。所以对于这个网站,这是一个很好的尺寸!如果您返回低于1MB的任何内容,您不必担心。但是,如果结果要大得多,请继续本教程。
您还可以使用更长的查询,如下所示。这将显示自动加载的数据大小、表中有多少条目以及按大小排列的前10个条目。
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 10;
在wp_options中挖掘单个自动加载的数据
下一步是挖掘一些最重要的自动加载数据。
清理wp_options表
如果您看到很多我们上面提到的内容,那么可能是时候清理 wp_options 表中所有自动加载的数据了。还建议您尝试将wp_options表上的行数保持在最低限度。在删除数据库中的数据之前,请始终进行备份。
就像我们之前所做的那样,您需要登录到phpMyAdmin。单击左侧的数据库,然后单击SQL选项卡。然后输入以下命令并点击“Go”。
SELECT * FROM `wp_options` WHERE `autoload` = 'yes'