我大概成仙了
2017-08-09 00:41
为什么说插入的时候冲突率低,网络延迟和GC可以并行啊?这样加快速度有点不理解?
因为插入数据是插入的不同行,可以并行(冲突率低)。只有重复秒杀时才会冲突,但是由于userphone+id为唯一主键所以不会重复秒杀。
insert,update,delete,select for update都是隐式的行级独占锁。
分析的也对insert是新数据,update是老数据
首先是在更新操作的时候给行加锁,插入并不会加锁,如果更新操作在前,那么就需要执行完更新和插入以后事务提交或回滚才释放锁,而如果插入在前,则更新完以后事务提交或回滚就释放锁。也就是说是更新在前加锁和释放锁之间两次的网络延迟和GC,如果插入在前则加锁和释放锁之间只有一次的网络延迟和GC,也就是减少的持有锁的时间。
Java高并发秒杀API之高并发优化
78600 学习 · 170 问题
相似问题