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

为什么行级锁是在updat语句而不是insert语句上

为什么行级锁是在updat语句而不是insert语句上

正在回答

3 回答

insert只会锁当前行,别人insert和你insert不冲突。 而update就不一样了。 比如大家都要更新1000元抢Iphone6更新,那么就会抢同一行的锁

2 回复 有任何疑惑可以回复我~

为什么我看资料插入是会有排它锁的

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

qq_昌记_04382570

应该这样理解: 首先可以确定的是,insert也会有行锁的。因为作者的表有设置主键,innode默认对有主键的表为主键添加索引。只要有索引,insert,update和delete操作都会变成行级锁。 只是insert锁住了是要插入的行,不影响其它事务继续插入,因为插入的不是同一行!但是update的行锁会影响其他事务对同一行的update。因此,仅仅对并行插入而言,insert就相当于没锁。
2019-03-08 回复 有任何疑惑可以回复我~
#2

Neo_xu 回复 qq_昌记_04382570

正解!
2019-04-23 回复 有任何疑惑可以回复我~
#3

那只猩猩很亮 回复 qq_昌记_04382570

膜拜.
2019-05-09 回复 有任何疑惑可以回复我~
#4

zwhmepsy 回复 qq_昌记_04382570

解释的挺好的
2019-08-13 回复 有任何疑惑可以回复我~
#5

慕运维5275090 回复 qq_昌记_04382570

牛比了
2019-10-12 回复 有任何疑惑可以回复我~
查看2条回复

insert语句是没有锁的,mysql的行级锁是针对索引的

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

魄弹兽

这块我也太懂,为什么只有update有行级锁,还有mysql对索引条件下执行行级锁,但是表里只对时间建立了索引,为什么update 数量也会有行级锁
2018-05-11 回复 有任何疑惑可以回复我~
#2

魄弹兽

哦,知道了,因为update减库存语句用到了时间比较作为条件我忽略了这一点,所以他是有行级锁的, insert的sql语句没有索引条件
2018-05-11 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么行级锁是在updat语句而不是insert语句上

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信