我使用查询监视器插件在我的WordPress网站上查找慢速查询。下面提到的WP_Query->get_posts()
在0.3976的总数据库查询时间中,大约需要0.3446个查询时间。
SELECT wp_posts.ID
FROM wp_posts
LEFT JOIN wp_term_relationships
ON (wp_posts.ID = wp_term_relationships.object_id)
WHERE 1=1
AND wp_posts.ID NOT IN (203598)
AND ( wp_term_relationships.term_taxonomy_id IN (17)
OR wp_term_relationships.term_taxonomy_id IN (11652,20693,21952,23971,24907,24908,25928) )
AND wp_posts.post_type = \'post\'
AND ((wp_posts.post_status = \'publish\'))
GROUP BY wp_posts.ID
ORDER BY wp_posts.post_date DESC
LIMIT 0, 6
我猜这与我网站上帖子上使用的20000多个标签有关。是这样吗?如果是,您建议如何修复此慢速查询?或者,我应该如何删除网站上所有帖子中5篇以上没有使用的标签?
请帮忙。
SO网友:MMT
我也遇到过同样的问题,但关于产品属性,因为我有20000多个产品和更多的产品属性,所以查询速度非常慢
我所做的是,为了加快速度,编写了一个小插件,将标签转换为自定义字段,然后在页面上显示这些字段,但在您的情况下,如果您需要标签存档页面及其功能,我想没有其他方法可以绕过它
避免max_execution_time
尝试将插件配置为在小块中执行标记转换指令,例如,从POST 1到2000,从POST 2000到4000等等。
数据库索引也可能有帮助。
最后尝试使用缓存插件,如wp_fastest_cache
这在很大程度上有帮助。