为了账号安全,请及时绑定邮箱和手机立即绑定

最赞回答 / qq_光_22
首先是在更新操作的时候给行加锁,插入并不会加锁,如果更新操作在前,那么就需要执行完更新和插入以后事务提交或回滚才释放锁,而如果插入在前,则更新完以后事务提交或回滚就释放锁。也就是说是更新在前加锁和释放锁之间两次的网络延迟和GC,如果插入在前则加锁和释放锁之间只有一次的网络延迟和GC,也就是减少的持有锁的时间。

最新回答 / 慕数据3598747
放在对应mod(seckillId)之后的那张表里

最新回答 / 慕数据3598747
应该是用到一些专用的压测工具,但是使用起来非常简单,因为他这个压测的url就一个

已采纳回答 / 呵呵_0065
中执行update操作时会用到行级锁,调换顺序则减少了持有锁的时间

已采纳回答 / kevinyangit
原来执行的流程update(发送在mysql网络时间+gc时间) + insert(发送在mysql网络时间+gc时间)因为update同一行会导致行级锁,而insert是可以并行执行的。1.如果先update, update在前面会加锁锁 + update(发送在mysql网络时间+gc时间) + insert(发送在mysql网络时间+gc时间) + 提交锁其实的线程就要等,这个锁提交才能执行。2.如果先insert,insert(发送在mysql网络时间+gc时间) +  锁+ update(发送在...
课程须知
《Java高并发秒杀API》是系列课程,共四门课,分别为业务分析和DAO层,Service层,Web层和高并发优化。本门课程是第二门课程,学习前需要了解如下知识: 1、精通JavaWeb基础 2、熟悉SpringMVC、Spring和MyBatis框架 3、了解事务和存储过程的概念
老师告诉你能学到什么?
1、掌握秒杀业务 2、能够进行SpringMVC+Spring+MyBatis的整合开发 3、能够对秒杀业务的瓶颈有所了解 4、能够实现对秒杀业务的优化

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消