首页 > 解决方案 > 由于查询速度慢而导致 CPU 使用率极高的 Wordpress 网站

问题描述

我正在一个使用高级自定义字段和 woocommerce 的网站上工作。我有1800个产品可以由会员创建和编辑(当然每个会员只能编辑自己的产品)。由于每个产品都有大约 40 个自定义字段,因此数据库正在快速增长,并且通过插件“查询监视器”,我发现我运行以获取这些产品的查询非常慢(0,06 - 0,08)。我该如何优化呢?我使用 redis 和 OPCache,但是很长时间无法访问该网站。

这是我正在运行的查询之一:


SELECT wp_posts.ID
FROM wp_posts
INNER JOIN wp_postmeta
ON ( wp6b_posts.ID = wp_postmeta.post_id )
INNER JOIN wp_postmeta AS mt1
ON ( wp_posts.ID = mt1.post_id )
WHERE 1=1
AND wp_posts.post_author NOT IN (1)
AND ( wp_postmeta.meta_key = 'order_cal'
AND ( ( ( mt1.meta_key = '_product_sub'
AND mt1.meta_value NOT IN ('') ) ) ) )
AND wp_posts.post_type = 'product'
AND ((wp_posts.post_status = 'publish'))
GROUP BY wp_posts.ID
ORDER BY wp_postmeta.meta_value DESC

我听说你可以用索引优化你的表,但在我的具体情况下找不到合适的教程来帮助。

在此先感谢,欢迎所有帮助:)

标签: phpsqlwordpressadvanced-custom-fields

解决方案


对于wp_postmeta

INDEX(post_id, meta_key)

有关更多详细信息,请参见:http: //mysql.rjweb.org/doc.php/index_cookbook_mysql#speeding_up_wp_postmeta


推荐阅读