码迷,mamicode.com
首页 > 其他好文 > 详细

性能优化都不会,还敢说自己是高级工程师

时间:2020-11-07 15:50:06      阅读:16      评论:0      收藏:0      [点我收藏+]

标签:关联   后台   结果   处理   根据   red   高级   strong   更新   

一、数据库优化

一般来说,当一个请求超过200ms,就需要优化了,当前这不是绝对的标准,具体看业务场景。

sql优化一般包括

1、是否命中索引

2、设计是否合理

3、关联查询是否合理

实在数据量大,只能在拆分了。如果需要同时插入许多数据,尽可能使用 BulkCopy 操作以提升性能。

 

使用云数据库的监测慢查询、MiniProfiler

 

二、代码优化

1、重复调用

在代码当中,重复的调用执行sql、计算方法等,比如在循环的方法当中,根据id查询数据库,循环100次查询100次sql,这种是很崩溃的做法,应该是在外面直接统一查询;

在做事务处理的时候,一些查询动作需要先处理查询,最后在执行事务,避免事务时间过长,导致死锁;

避免循环创建对象;

使用StringBuilder做字符串连接等。

 

使用MiniProfiler进行监测;

 

2、按需查询

很多业务逻辑不复杂的功能,却响应很慢。往往都是直接就调用一些已经存在的方法,导致整体响应变慢,或者可能就需要一两个字段,结果把所有的字段都处理了。其实就是避免查询的时候直接select *,返回的时候不要整个实体对象返回。

 

3、加缓存

缓存也是优化中最常用的,效果提升最明显的,成本也不大。对于缓存,也不要滥用,不是所有场景都可以靠堆缓存来提高性能的。

首先对于实时性要求不高的业务场景可以优先使用缓存,也不用太考虑更新的问题,自然过期就行。

实时性要求高的业务场景,用缓存一定要有完整的缓存更新机制,否则很容易造成业务数据和缓存数据不一致的情况。

 

推荐使用redis,支持分布式.

 

三、异步处理

有些逻辑,不需要实时反馈给用户、或者耗时的那就可以采用异步的方式在后台进行处理。

 

可以使用消息队列rabbitmq、后台服务hangfire等

 

四、扩容

加机器是最后的终极大招了,并发量上去的时候,你在怎么优化单机器和单数据库抗并发能力也是有限的,这个时候只能水平扩展了。

 

做负载均衡等

 

性能优化都不会,还敢说自己是高级工程师

标签:关联   后台   结果   处理   根据   red   高级   strong   更新   

原文地址:https://www.cnblogs.com/lyl6796910/p/13935059.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!