论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com
»
论坛
›
数据库
›
分布式数据库
›
彻底理解怎样优化接口性能
彻底理解怎样优化接口性能
锦通
论坛元老
|
2024-12-21 16:01:33
|
显示全部楼层
|
阅读模式
楼主
主题
1021
|
帖子
1021
|
积分
3063
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
作为后端研发,必须要把握怎么优化接口的性能大概说是响应时间,如许才能提高系统的系能,本文通过如下两个方面举行分析:
一.后端代码
有如下几步:
1.缓存机制
这是最场景的方式,当利用了缓存后,就可以通过缓存直接拿到数据,进而返回,但是利用了缓存以后也会引入一下问题,好比缓存与数据库不一致问题、缓存穿透击穿雪崩等一些场景问题,可以根据差别的应用场景来选择差别的缓存机制。
2.并发调用
好比调用A系统,A系统会去调用B系统和C系统,如果是链式调用,B系统需要耗时100ms,C系统需要耗时100ms,如许就会耗时300ms,如果采用并发的方式同时去调用,就最多需要200ms。
3.同步接口异步化
好比说请求中有部门逻辑的耗时特别长,但是这部门逻辑也不影响主业务,此时就可以把耗时的逻辑从主业务中剥离出来,通过异步举行处置处罚,如许就可以提高主业务的相应时间,也就提高了接口的性能。
4.避免大事件
大事件就是指的历经时间很长的事件,好比说利用了sprind的transaction的管理事件,就有大概会启动大事件,因为spring的事件管理原因是将多个事件合并在一个执行中,如果同一个接口有多个数据库读写,并且该接口并发大的话,就有大概导致大量的数据锁在数据库中,造成大量的阻塞,进而导致数据库连接池连接耗尽,所以需要将大数据举行拆分,将非事件操纵和事件操纵举行区分出来。
5.优化日记纪录
因为在高并发的场景下答应日记大概会导致接口性能降落,而且要打印日记的时候避免打印大数据、大对象。
二.数据库
有如下几步:
1.数据库查询优化
好比添加合适的索引、查询的时候只查询必要的字段、优化深分页(固然不能完全避免深分页,但是可以举行优化,好比和前端约定,每次都要把当前页面的末了一条数据的id传入到后端),还可以查看《谈谈对Mysql数据库优化的见解》,大概是查看我Mysql专栏下的其他文章,对数据库的优化都做了具体的分析。
2.表计划冗余数据
固然是反范式的计划,但是冗余数据可以淘汰多表关联查询,如果在分库分表的时候,可以在差别的库上冗余同一张数据,如许就可以不需要跨库查询了。
3.利用连接池管理数据库连接
和线程池一样,利用池化技能来管理连接,避免频仍创建和销毁连接,调高数据库的效率。
4.利用数据压缩技能
这一点针对网络数据传输的,对于大数据量的响应,需要只管利用压缩来举行处置处罚,好比说利用gzip可以淘汰网络传输的数据量,加快了接口响应。
5.终极绝招
如果此时优化数据库配置,优化sql都没办法解决,此时就有两个终极解决方案:
(1)加机器;
(2)换数据库,有大概当前数据库不适应你的系统,可以去找一下是否有更合适该业务系统的数据库。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
锦通
论坛元老
这个人很懒什么都没写!
楼主热帖
漏洞利用
vue3 - 最新详细实现 “拖曳式课程表“ ...
快速入手node.js
奇怪,为什么ArrayList初始化容量大小 ...
医院HIS体系厂家统计
如何成为一位人心所向的管理者?我的经 ...
Kubernetes(k8s)pod详解
如何在文章中设置灰色文本框(正文底色 ...
Vue实现复制粘贴功能
理解MVCC
标签云
AI
运维
CIO
存储
服务器
浏览过的版块
Mysql
网络安全
Oracle
MES
.Net
DevOps与敏捷开发
前端开发
物联网
快速回复
返回顶部
返回列表