我有一个wordpress网站,有一些严重的wp\\U选项表膨胀。这会导致页面加载缓慢和内存膨胀。经过调查,似乎有成千上万的孤儿条目。
If you know for a fact these options are for plugins that are no longer in use, then yes it\'s safe to delete them. 如果是这种情况,请删除它们并停止阅读此处
如果您不确定这些选项是否适用于不再活动的插件,那么您可能需要提高警惕,需要手动检查。
此外,您可以有一个真正庞大的选项表,它不会导致这些问题,罪魁祸首是autoloading 选项。
为了避免大量的小选项表查询,选项表中有一列用于自动加载选项。然后,WP将立即加载带有此标志的所有选项。看来你的网站上有很多这样的东西。
因此,您可以通过SQL关闭此标志,但是,您不想对所有选项都这样做,毕竟这样做是有原因的。然而,最坏的情况是性能降低,因为必须进行大量的小查询才能获取单个选项。如果你备份,它总是可以撤消的
删除这些行并随后优化表的过程安全吗?
如果您知道这些是针对已更改的主题或不再安装/激活的插件,那么是的,它是安全的。我不明白被删除的代码怎么会从坟墓里回来造成严重破坏。
否则,您必须手动检查。
是否有始终可以安全删除的选项
瞬态!!通过删除它们,WP将不得不重新生成并重新创建它正在使用的选项,但是,如果选项表中充满了瞬态,删除它们很少会产生问题。当它确实产生问题时,通常是由于构建得非常糟糕的插件。
类似地,插件可以选择在选项中缓存内容。您的里程数可能会有所不同,并且可能会发生一些损坏,因此请备份,否则很可能只会影响性能
常规选项表膨胀调试
选项表膨胀的问题是,人们称之为选项表膨胀,并期望得到一个通用的解决方案,但这实际上只是一组更深层更具体问题的迹象。与HTTP 500错误只是一个指示出错的指标类似,您不需要修复500个错误,只需修复PHP致命错误、语法错误、服务器配置等。
因此,您需要执行以下操作:
找出选项表膨胀的原因,看看表,如果它装满了东西,它装满了什么考虑一下,在自动加载的选项中,它们真的需要自动加载吗?哪个代码对此负责当您识别出非常大的选项,或者同一事物有10k个小选项、空选项等时,您是否可以更改此代码?或者你需要询问插件作者吗小心选项清洁插件,毕竟他们怎么知道哪些选项需要清洁,哪些选项需要清洁?除了瞬态之外,不需要手动检查也无法计算出多少wp option list
子命令测试选项并查看哪些选项最大,有哪些名称等https://developer.wordpress.org/cli/commands/option/list/至于优化表格,你必须更具体地说明你的意思。然而,MySQL表优化对WP性能几乎没有影响,除非您进行了重大更改。与数据库相关的最佳改进与查询本身以及加载的信息的数量和类型有关。在这种情况下,有很多东西是自动加载的。
WidgetsThese是一种边缘情况,因为小部件存储在选项中。如果你注册了很多侧边栏,我的意思是lot (足以容纳数百或数千个小部件)或在数据库中存储大量内容但放在非活动区域的小部件(例如,一整本书、文件,而不是普通类型的内容),则小部件可能会导致问题。
通常,小部件是一个问题,因为对象缓存存储一个all options字段,以使选项加载超快速,而一些对象缓存的每个字段的容量上限为1MB。许多小部件通常会遇到这种障碍。
但是,这是您的问题的可能性很小,可以使用WP CLI和SQL进行测试