Web业务系统常见性能优化手段

1,同步处理变成异步处理

     比如可以利用mq等中间件,将部分业务进行异步处理

2,多线程处理

     一般业务都是有IO操作的(数据库交互),可以利用多线程并发处理多个任务

3,批处理

    有大批量的数据写入时,可以把每500条数据当作一个批次处理,减少与db交互次数。

    核心就是减少for循环的次数

4,选择合适的数据库

     一般来说,代码的指令执行很快,业务系统一般都要操作数据库,因此性能的瓶颈点,取决于使用的数据库,如果随机读写多可以使用mysql,复杂的数据分析(很多join)可以使用postgresql

5,sql优化

     关系型数据库要建立合适的索引,编写sql语句时,要符合该数据库的索引执行原理

6,增加服务器个数

    整个系统的处理,可能是由于服务器的个数不够,导致请求排队,适当增加服务器个数。

   现在很多系统都是部署在k8s上,自动扩容应该比较简单。

7,提高数据库配置

     增加服务器个数后,接口还是慢,那可能就是数据库压力太大了。观察后,先提升数据库配置,比如把2h4g 调整到 4h8g,再观察观察。

8,数据库分库分表

    常规业务不会涉及到上亿的数据,但是如果未来的数据可能会增长到这个级别,就可以分库分表了

9,使用缓存

     在性能要求很高,但是又频繁读取数据库的时候,可以考虑使用缓存。

    建议:关于缓存一致性问题,怎么做都是无法保证,往往最简单的解决方案最不容易出错。业务系统设计的时候,不应该花大量的代价去思考怎么解决极难解决的技术问题,而是思考出了问题该怎么办。

10,业务拆分

      很多时候,性能的根源也可能是业务涉及的不合理,把很多功能柔在一起,如果你能想到更好的解决方案,可以给产品提,解决性能的最终办法,就是解决来源。

写在最后:业务代码主要保证逻辑清晰,功能正确,不要为了性能,而写出晦涩难懂的代码,当然也得避开嵌套的for循环。

    

   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值