首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在大量的文章中,分页非常缓慢。

问在大量的文章中,分页非常缓慢。
EN

WordPress Development用户
提问于 2019-03-14 00:18:01
回答 1查看 350关注 0票数 0

如何优化sql?

代码语言:javascript
复制
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_term_relationships.term_taxonomy_id IN (7,8,14,104,134,234,289,331,4656,4657,6038,6039,6040,6085,6562,6563) )
AND wp_posts.post_type = 'post'
AND (wp_posts.post_status = 'publish'
OR wp_posts.post_status = 'private')
GROUP BY wp_posts.ID
ORDER BY wp_posts.post_date DESC
LIMIT 2480, 20

我使用了缓存和对象缓存。但是,随着一篇新文章的发布,缓存将失败,服务器负载将过高。这个问题已经困扰了很长一段时间,并导致网站运行缓慢。

EN

回答 1

WordPress Development用户

发布于 2019-03-14 01:33:10

为了减少此查询的加载时间,您可以做的最明显的两件事是IN语句和LIMIT语句中的偏移量。

在IN语句中检查的项越多,查询的效率就越低。请参阅:https://stackoverflow.com/questions/4514697/mysql-in-operator-performance-on-large-number-of-values

偏移导致性能问题的原因是mysql计数能力的效率低下。请参阅:https://stackoverflow.com/questions/4481388/why-does-mysql-higher-limit-offset-slow-the-query-down

如果可以,我建议在发布一篇新文章后对缓存进行加温。这将重置缓存,通过系统进程而不是用户请求重新构建缓存。请参阅:https://stackoverflow.com/questions/434259/what-is-a-warm-up-cache

如果您依赖用户请求来创建缓存,那么在完全构建缓存之前,它可能会导致用户多次请求相同的结果,这并不是一个很好的位置。

如果你能在你的网站前得到像清漆这样的东西,那会有很大帮助。清漆可以防止大多数请求触及php,并且它在处理请求时非常快速。

票数 1
EN
页面原文内容由WordPress Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://wordpress.stackexchange.com/questions/331576

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档