【发布时间】:2020-12-28 12:55:37
【问题描述】:
我正在一个网站上工作,我在该网站上使用高级自定义字段和 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
我听说您可以使用索引优化您的表,但在我的具体情况下找不到合适的教程。
在此先感谢,欢迎所有帮助:)
【问题讨论】:
-
请改正错字:
wp6b_posts.
标签: php sql wordpress advanced-custom-fields