网站优化性能
Posted cang12138
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网站优化性能相关的知识,希望对你有一定的参考价值。
1、网站
对于不常更新的网页,使用静态页,使用 cdn 加速。
Linq可以减少数据库的压力,可以适当使用Linq来筛选数据。详见 Linq处理list数据
特定场景可以适当使用多线程,来保证代码尽快的跑完,节省时间。详见 多线程ManualResetEvent、等待所有线程
2、数据库(sql)
关于 sql 方面的优化,详见 Mysql语句的优化
合理利用 mysql 的 binlog 日志,利用增删改的 sql 记录,确定问题发生原因。Mysql查看binlog日志
关于主从同步,如果使用主从同步,需要极短时间确认数据存在的,一定要查询主库,因为主从同步有延迟。
3、网络请求
压缩图片、js,合并js,图片有个延迟加载
4、缓存(memcache、redis)
缓存可以有效的降低数据库的压力,对于一些不常更新,大量用户使用的数据,可以放进缓存中,保证查询速度。详见 MemCache缓存和C#自带的Cache缓存
5、并发
分析:同一时间大量请求,导致服务响应慢,请求处理不过来,然后导致后面的请求排队。
优化思路:当请求来的时候,存进队列里,及时返回,断开请求。然后从队列中拿数据,进行业务逻辑处理。
优化思路:排队!利用队列(可以替换成 redis)存储请求的参数,然后及时断开连接,保证其他请求可以及时进入。同时触发处理队列的方法。详见 C# 队列(Queue)解决简单并发
我们以小米手机为例,假如今天需要抢购的手机有100台,有10000个人去抢,但是这10000个人会多开网页去抢够,还有可能找好多朋友一起帮忙抢,还有一部分的人可能会有脚本。
处理方法就是使用分布式异步队列。我们把所有的请求都存储到队列中,同时用户进到等待页面,让他去排队。我们安排一个处理队列的方法,不停的去队列中拿数据,然后确认是否有购买手机的权限。直到确定100个可以购买的用户,然后我们更新数据库的值。用户等待的页面会不停的发起请求,来确认手机手否卖完。直到获取到,然后将已售馨告诉用户。结束抢购。
以上是关于网站优化性能的主要内容,如果未能解决你的问题,请参考以下文章