修复GET_POST中wp_Term_Relationship查询速度慢的问题

时间:2019-06-23 作者:Shivy23

我使用查询监视器插件在我的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篇以上没有使用的标签?

请帮忙。

1 个回复
SO网友:MMT

我也遇到过同样的问题,但关于产品属性,因为我有20000多个产品和更多的产品属性,所以查询速度非常慢

我所做的是,为了加快速度,编写了一个小插件,将标签转换为自定义字段,然后在页面上显示这些字段,但在您的情况下,如果您需要标签存档页面及其功能,我想没有其他方法可以绕过它

避免max_execution_time 尝试将插件配置为在小块中执行标记转换指令,例如,从POST 1到2000,从POST 2000到4000等等。

数据库索引也可能有帮助。

最后尝试使用缓存插件,如wp_fastest_cache 这在很大程度上有帮助。

相关推荐

还原MySQL数据库后出现内部服务器错误

我刚刚更换了我个人网站的主机,该网站使用WordPress运行。在迁移之前,我对MySQL数据库进行了备份,并将相同的备份上载到我的新数据库。网站显示正常,但我无法登录。它不会检测到我的旧用户名和密码,当我通过“忘记密码”请求新密码时第节,我遇到以下错误:内部服务器错误服务器遇到内部错误或配置错误,无法完成您的请求。如何修复此错误?我尝试了以下列表中的解决方案,但均无效:https://wwwi.wpbeginner.com/wp-tutorials/how-to-fix-the-internal-ser