版权声明:本文为博主原创文章,转载前动动小手点个【赞】吧~ https://blog.csdn.net/Dream_Weave/article/details/85060813
一、优化之前端控制
- 按钮防重复
- 待更新...
二、优化之动静态数据分离
- CDN => 优化 - CDN
- 待更新...
三、优化之细粒度化事务锁
插入操作放在前面,插入操作就是把秒杀单,用户id,电话组成一个组件,这个组件冲突的概率并不是很高(不会出现一些数据“脏”的情况),因为秒杀单在前头,还有用户的电话,组成一个唯一键,这个时候的网络延迟和GC是可以并行的,这个时候再去拿update减库存的rowLocl行级锁。
秒杀操作的简单优化:更新库存的是热点操作,会出现行级锁,而插入购买记录的行为没有行级锁。可以先插入购买明细,可以避免因重复秒杀带来的不必要的更新库存操作,减少不必要的行级锁的占用。然后再去更新库存。这样,行级锁的占用时间可以节省一半(反正是节省了)。
四、优化之缓存
- Redis
- 待更新...
五、优化之存储过程
存储过程:
1.存储过程优化:事务行级锁持有的时间
2.不要过度依赖存储过程
3.简单的逻辑依赖存储过程
4.QPS:一个秒杀6000/qps
六、优化之其他
- protostuff(序列化框架)
Ps:protostuff.jar 比 java自带的序列化,无论是空间还是时间都优化很多。 - 待更新...