大佬们 内页加载特别慢 如何处理比较好啊-zibll综合交流社区-zibll子比主题-WordPress主题模板-zibll子比主题

大佬们 内页加载特别慢 如何处理比较好啊

各位子比主题的大佬好~ 新人站长求助!最近遇到个头疼问题,想问问有没有同款情况的朋友,或者已经解决的大佬分享下经验~
 

一、我的环境配置

 
  • 服务器:Ubuntu22.04(16 核 16G,SSD,30M 带宽)
  • 程序:WordPress6.9 + 子比主题 V8.5
  • 环境:PHP8.2.28(已装 opcache/redis/fileinfo 扩展)+ MySQL8.0.36 + Nginx1.26.3 + Redis 缓存
  • 网站:是做知识付费下载(网盘链接) 目前大概有6w左右个课程  
 

二、问题现象

 
首页、分类页加载都很流畅,但点击内页(文章 / 课程页)加载特别慢,要等 3-6 秒才能完全打开,体验太差了!
 

三、已排查到的关键问题(慢查询日志)

 
通过宝塔面板开启 MySQL 慢查询日志后,发现内页加载时会执行大量耗时 3-6 秒的 SQL 查询,都是和「阅读量(views)」相关的,比如:
 
sql
 
 
 
 
 
# Query_time: 6.476726 Lock_time: 0.000003 Rows_sent: 6 Rows_examined: 1169868
SELECT zxlm_posts.ID
FROM zxlm_posts INNER JOIN zxlm_postmeta ON ( zxlm_posts.ID = zxlm_postmeta.post_id )
WHERE 1=1 AND zxlm_posts.ID NOT IN (91512) AND zxlm_posts.post_author IN (3) AND (
zxlm_postmeta.meta_key = 'views'
) AND zxlm_posts.post_type = 'post' AND ((zxlm_posts.post_status = 'publish'))
GROUP BY zxlm_posts.ID
ORDER BY zxlm_postmeta.meta_value+0 DESC
LIMIT 0, 6;
 
 
每次查询都要扫描 117 万行数据,但只返回 6 条结果(应该是子比的「作者热门文章」模块),而且ORDER BY zxlm_postmeta.meta_value+0 DESC这段好像会导致索引失效?
 

四、已做的配置(但没解决)

 
  1. 已经安装并启用 Redis 缓存,wp-config.php也配置了基础缓存参数;
  2. PHP 开启了 Opcache,调整过内存和缓存有效期;
  3. 内页没有冗余静态资源,浏览器 F12 看主要是「文档请求(PHP)」耗时久。
  4. 我把文章页侧边栏的作者登录以及搜索 和相关推荐都删了
 

五、求助诉求

  1. 有没有朋友遇到过类似问题?你们是怎么解决的?
  2. zxlm_postmetazxlm_posts表加索引会不会影响主题功能?(怕改坏数据,已经备份数据库了)
  3. 子比主题的「内页缓存」或者「阅读量统计」有没有特殊配置技巧,能避免这些慢查询?
  4. Redis 缓存怎么设置才能覆盖这些「热门文章 / 阅读量排序」的查询?
 
新人站长对数据库优化不太熟悉,怕操作失误影响站点,希望有经验的大佬能指点下具体步骤,万分感谢!🙏
 
(如果需要更多配置信息或日志,我可以补充~)
请登录后发表评论