我们安装了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
函数全局?