在企业级应用开发中,ThinkPHP 是国内非常流行的 PHP 框架。但随着业务量增长,慢查询、缓存命中率低、数据库连接打满等问题会逐渐暴露。本文结合我们在多个项目中的实战经验,分享 ThinkPHP 8 的性能优化思路。
一、数据库层优化
首先要做的是开启数据库慢查询日志,定位真实瓶颈。常见优化手段包括:
- 为高频查询字段建立合适的复合索引
- 避免 SELECT *,只查询需要的字段
- 大分页用游标或 ID 区间替代 OFFSET
- 关联查询用 JOIN 替代循环查询
二、Redis 缓存策略
缓存不是简单地把数据塞进去就完事。我们通常按数据类型分层:
热点数据用 Redis 内存缓存,结构化配置数据用文件缓存,低频数据直接查库。
关键是设置合理的过期时间,并做好缓存失效策略。更新数据库时主动删除对应缓存,而不是等它自然过期。
三、代码层优化
使用 ThinkPHP 的时候,要特别注意 N+1 查询问题。使用关联模型时,用 with() 预加载,避免在循环里查数据库。
四、服务器层
最后,PHP-FPM 进程数、Nginx 静态资源缓存、OPcache 等配置也要调到合理值。很多时候代码没问题,瓶颈在服务器配置。