接口性能优化

2023-09-18 20:11:49

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倍! - 掘金

更多推荐

2023!6招玩转 Appium 自动化测试

Appium是个什么鬼Appium是一个移动端的自动化框架,可用于测试原生应用,移动网页应用和混合型应用,且是跨平台的。可用于IOS和Android以及firefox的操作系统。原生的应用是指用android或ios的sdk编写的应用,移动网页应用是指网页应用,类似于ios中safari应用或者Chrome应用或者类浏

【react】使用useEffect操作dom

简言在学习react时,需要了一个需要在useEffect里操作dom的用法。一般不推荐这么干,如果是函数组件在一渲染已挂载后立即需要操作dom绑定事件等可以参考下面解决方法。描述官网交错运动示例这个示例中,usePointerPosition()Hook追踪当前指针位置。尝试移动光标或你的手指到预览区域上方,可以看到

【二叉搜索树】将二叉搜索树变平衡-力扣 1382 题

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。推荐:kuan的首页,持续学习,不断总结,共同进步,活到老学到老导航檀越剑指大厂系列:全面总结java核心技术点,如集合,jvm,并发编程redis,kaf

AG35学习笔记(一):debug串口抓取模组log、debug串口测试AT指令、echo命令通过串口发送16进制数据

目录一、概述二、抓取模组log2.1硬件接口2.2用户登录2.3相关指令三、测试AT指令3.1查看端口3.2进入模式四、串口发16进制echo使用一、概述二、抓取模组log在之前记录了通过USB,使用移远工具Qwinlog来抓取log(3.3抓取模组log)。现在记录下使用debug串口抓取模组log。2.1硬件接口根

MES管理系统在生产中的应用及智能工厂的构建思路

在当今制造业中,随着信息化技术和智能化的不断发展,MES生产管理系统已成为工厂生产的核心组成部分。MES管理系统不仅能够提高生产效率,还可以优化生产流程,提升产品质量。本文将详细介绍MES管理系统在工厂生产中的应用以及构建智能工厂的思路。一、MES系统在工厂生产中的应用1、生产计划管理MES系统在生产计划管理中起到了关

chat-gpt笔记:参数temperature与top_p

temperature官方文档temperaturenumberornullOptionalDefaultsto1Whatsamplingtemperaturetouse,between0and2.Highervalueslike0.8willmaketheoutputmorerandom,whilelowervalu

python中的NaN在质量控制中怎么处理?

一、数据中的缺省值气象数据中经常存在缺省值,比如未入库的站点数据、比如海温格点实况数据中的陆地区域。这些缺省值往往被赋予NaN(NotaNumber,非数)。NaN是计算机科学中数值数据类型的一类值,表示未定义或不可表示的值。这些NaN值一般需要在计算时被去除掉,以免影响计算结果。那么,该怎么去除呢?二、NaN的定义和

27 WEB漏洞-XSS跨站之代码及httponly绕过

目录HttpOnly安全过滤测试HttpOnly安全过滤绕过思路演示案例:Xsslabs关卡代码过滤绕过测试HttpOnly安全过滤测试防止xss攻击,指的是攻击手法,并不是能防止XSS漏洞,httponly阻止的仅仅只是cookiehttponly在相关的脚本都是支持的,我们根据自己网站的脚本环境,有相当的开启方法h

【错误记录】Python 中使用 PySpark 数据计算报错 ( SparkException: Python worker failed to connect back. )

文章目录一、报错信息二、问题分析三、解决方案错误原因:没有为PySpark配置Python解释器,将下面的代码卸载Python数据分析代码的最前面即可;#为PySpark配置Python解释器importosos.environ['PYSPARK_PYTHON']="Y:/002_WorkSpace/PycharmPr

【跟小嘉学 Rust 编程】三十一、Rust的日志与追踪

系列文章目录【跟小嘉学Rust编程】一、Rust编程基础【跟小嘉学Rust编程】二、Rust包管理工具使用【跟小嘉学Rust编程】三、Rust的基本程序概念【跟小嘉学Rust编程】四、理解Rust的所有权概念【跟小嘉学Rust编程】五、使用结构体关联结构化数据【跟小嘉学Rust编程】六、枚举和模式匹配【跟小嘉学Rust

肖sir__mysql之存储__012

mysql之存储一、存储1、什么是存储过程定义:存储过程就是实现某个特定功能的sql语句的集合,编译后的存储过程会保存在数据库中,通过存储过程的名称可以反复的调用执行。2、存储过程的优点?(1)存储创建后,可以反复的调用,和使用,不需要重新写复杂的sal语句(2)创建、修改存储过程不会对数据有任何影响(3)存储过程可以

热文推荐