用户元数据查询异常高

时间:2019-05-27 作者:ARAGATO

我们安装了WordPress,安装了许多插件。该网站的访问频率不高(可能有10-20个并发用户)。我知道插件的数量是以性能为代价的。然而,性能损失太大了,我们调查了一段时间,让数据库记录查询,因为在我们的系统监视器中,数据库线程总是超过100%的系统资源,而8x核、16GB Ram、100GB SSD等不应该是这种情况。

登录5分钟后,我们有超过220k个查询。90%以上的查询几乎相同(用户ID更改除外),形式如下:

SELECT user_id, meta_key, meta_value FROM usermeta WHERE user_id IN (1548) ORDER BY umeta_id ASC
这显然是不正确的,并解释了我们目前在DB服务器上遇到的瓶颈问题。我们正试图找到这一问题的罪魁祸首,但不知道如何找出导致这些user\\u元查询的原因。

在WordPress插件调试栏和查询监视器的帮助下,我能够隔离出导致问题的插件。

它们是材料wp(从usermeta中选择)和某种程度上的高级自定义字段pro(从Posteta中选择)。https://i.imgur.com/fxuKn8W.png (usermeta)https://i.imgur.com/6bFUwCR.png (预计时间后)

他们的主要问题在于getget_metadata 函数,然后使用update_meta_cache 作用

在联系材料wp插件的作者后,他提出了一个快速修复错误的方法,似乎解决了大量usermeta查询的问题。

但是,我仍然希望提高数据库性能。

任何帮助都将不胜感激。(是否有方法禁用update_meta_cache 函数全局?

1 个回复
SO网友:Antti Koskinen

我确信有更复杂的方法来调试查询,但我不知道它们。因此,通常当我需要调试WP查询时,我会使用查询监视器或调试栏(带有慢动作插件)插件,可以在wordpress上找到。org插件库。这些插件可以帮助您跟踪哪些功能/插件使网站速度变慢。至少对我来说,这些插件帮助很大。

我不属于这些插件中的任何一个,我很抱歉只给出了一个插件推荐答案。

相关推荐

按自定义域(wp-Query和循环)排序和显示帖子)

我只想在主页上显示即将到来的活动帖子。我使用“custom field suite”插件创建了一个自定义字段,名为“ENDS”,表示事件结束的日期。正如你所知,我只想在家里举行即将到来的活动,最接近现在的日期排在第一位。过期后,我希望将其归档到“归档”中,该页面在另一个页面上可见(该页面还应以最近过期的事件开始排序归档的事件帖子)。模板使用无限滚动加载帖子,这是我的索引文件,带有默认循环:http://pastebin.com/x3NzZBZX我需要集成这样的东西,但没有成功:<?php $