接口性能优化

1.批量操作数据库

2.异步执行,降低接口耗时,可以使用线程池或消息队列。

3.使用缓存,把要查的数据,提前放好到缓存里面,需要时,直接查缓存,而避免去查数据库或者计算的过程。

4.提前初始化到缓存,避免一些复杂的计算的耗时。

5.池化思想,使用线程池,重复利用线程,避免不必要的耗时。

6.拒绝阻塞等待。

7.远程调用由串行改为并行。

8.锁粒度避免过粗,影响接口性能。

9.压缩传输内容。

10.数据太大,先用文件的方式暂存,之后再异步下载文件,慢慢保存到数据库。

11.SQL添加索引

12.SQL优化

  • 12.1 selet具体字段
  • 12.2 多用limit
  • 12.3 用union all替换 union
  • 12.4 优化group by
  • 12.5 优化order by
  • 12.6 小表驱动大表
  • 12.7 字段类型使用合理
  • 12.8 优化linit分页
  • 12.9 exist& in的合理利用
  • 12.10 join关联的表不宜过多
  • 12.11 delete+in自查询不走索引
  • 12.12 in元素不要过多

13.使用@Transactional

14.深分页问题

15.优化程序结构

16.海量数据考虑NoSQl

17.合理的线程池设计

18.机器问题(fullGC,线程打满,太多IO资源没关闭等等)

参考:用了这18种方案,接口性能提高了100倍! - 掘金

相关推荐
我不会起名字32213 分钟前
Redis 从 0 到 1(二十三):一个热 key 打到 10 万 QPS——hotkey 与本地缓存的 Go 实现
redis·缓存·go·qps·hotkey
真上帝的左手1 天前
30. 技术专题-‌应用框架组件-缓存-Redis
数据库·redis·分布式·缓存·中间件
bksczm1 天前
C++Redis开发(Ubuntu 22.04)
数据库·redis·缓存
goehou1 天前
缓存该删还是该改,LLM 服务里的双写问题
redis·缓存·llm·一致性·系统设计
利威尔xu1 天前
Go IM 源码实战(14):本地缓存快 3000 倍,失效却难 10 倍
后端·缓存·微服务·面试·golang
程序猿编码2 天前
解决 LLM 算力浪费,一套统一 KV 管理层实现缓存复用
人工智能·神经网络·机器学习·缓存·llm·大模型推理
zrc0070072 天前
steam无法登录 steam错误 登录时出现错误。请稍后再试。解决办法 steam无法登录解决办法 湖南地区steam DNS问题解决办法
windows·经验分享·游戏·缓存·游戏程序·创业创新·玩游戏
CCblandy2 天前
缓存淘汰实测:一次全表扫描把 LRU 命中率从 46% 打到 38%,W-TinyLFU 守住 50% 却贵 11 倍
后端·python·缓存·性能优化·架构
Wang's Blog2 天前
Java 项目实战: 交友项目 - 小视频模块实战:访客记录、FastDFS 存储与 SpringCache 缓存
java·缓存·交友