接口慢了不要只盯着加索引。从代码到架构,性能优化有 10 个层次,越底层收益越大。

一、优化层次总览

  • 1.1 金字塔模型——越往上效果越明显
  • 1.2 优化原则——先测量再优化,从最慢的环节开始

二、层次 1:代码层

  • 2.1 避免循环中的数据库调用
  • 2.2 合理使用并行——CompletableFuture
  • 2.3 减少不必要的对象创建

三、层次 2:SQL 层

  • 3.1 索引优化
  • 3.2 SQL 改写——子查询变 JOIN
  • 3.3 避免 SELECT *
  • 3.4 批量操作——batchInsert

四、层次 3:缓存层

  • 4.1 本地缓存——Caffeine
  • 4.2 分布式缓存——Redis
  • 4.3 多级缓存——Caffeine + Redis
  • 4.4 缓存策略——Cache Aside / Read Through

五、层次 4:异步化

  • 5.1 消息队列——削峰填谷
  • 5.2 @Async——非核心逻辑异步处理
  • 5.3 异步非阻塞——WebFlux

六、层次 5:并行化

  • 6.1 多个独立查询并行执行——CompletableFuture
  • 6.2 批量 RPC 调用——Dubbo 的 async 调用
  • 6.3 线程池隔离

七、层次 6:批量

  • 7.1 批量查询——List<Long> 替代循环调用
  • 7.2 批量插入——batchInsert
  • 7.3 Pipeline——Redis Pipeline / Kafka 批量发送

八、层次 7:数据层

  • 8.1 读写分离
  • 8.2 分库分表
  • 8.3 冷热分离

九、层次 8:JVM 层

  • 9.1 GC 调优——选择合适的 GC
  • 9.2 堆内存大小调整

十、层次 9:架构层

  • 10.1 服务拆分——独立部署和扩缩容
  • 10.2 CDN——静态资源加速

十一、层次 10:硬件层

  • 11.1 SSD 替代 HDD
  • 11.2 网络带宽升级

十二、总结

  • 优化金字塔——代码 → SQL → 缓存 → 异步 → 架构
  • 不要过早优化,但要知道优化的方向