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

将insert购买明细放在update减库存真之前的操作能优化吗

insert购买明细不是会获得购买明细表的意向排他锁吗,该意向排它锁需要在commit之后才能释放,所以insert购买明细放在update减库存之前,真的能优化吗?

正在回答

2 回答

是的,可以优化。这样做的目的就是降低行级锁持有的时间。

0 回复 有任何疑惑可以回复我~
#1

槽卤 提问者

行级锁我知道,我想问的是意向锁,意向锁的持有时间增加了,哪来的优化?
2016-09-08 回复 有任何疑惑可以回复我~
#2

槽卤 提问者

非常感谢!
2016-12-28 回复 有任何疑惑可以回复我~

行级锁我知道,我想问的是意向锁,意向锁的持有时间增加了,哪来的优化?

0 回复 有任何疑惑可以回复我~
#1

Peter_Matrix

意向锁 ??? 准确的说 是在执行 insert 会加 排他锁, 再加排他锁之前会加意向排他锁, 但这并不影响多个insert操作的并行, 也即是 不会出现串行化操作。
2016-09-23 回复 有任何疑惑可以回复我~
#2

likeflower950 回复 Peter_Matrix

insert 真的可以串行插入? A事务先执行,insert 语法执行之后,进入暂停状态, B事务再执行,B事务执行完毕后commit,A事务才执行完毕然后commit,如果他们用的是自增主键的话,那么请问,A事务的主键在前面还是B事务的主键在前面?如果在B事务提交后,A事务失败回滚了,那么B是不是自增主键就中间断了一个数字?
2016-11-25 回复 有任何疑惑可以回复我~
#3

qq_幸福客_0 回复 likeflower950

你是不是打错了,应该是并行吧。据我所知,insert是需要表级锁的,阻塞更严重。
2017-02-28 回复 有任何疑惑可以回复我~
#4

大长脸 回复 qq_幸福客_0

insert的阻塞应该会比update更少一些,毕竟直接运行在MySQL服务端的语句,执行效率是很高的,之前老师也说过对一条数据,在服务端进行updata,那么每秒的QPS大概是4w左右,按照我的逻辑,insert的执行效率会更高,所以阻塞也应该会更少。
2017-05-24 回复 有任何疑惑可以回复我~
查看1条回复

举报

0/150
提交
取消

将insert购买明细放在update减库存真之前的操作能优化吗

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号