mysql InnoDB 行锁表锁

今天大家一起闲聊说道了InnoDB引擎,他们了很多我不知道的事请,不知怎么就料到了锁,这个我还知道一些,就说:在myisam引擎下用到索引的前提下就会加行锁,而且所得是索引表,不用索引的话就加表锁。本来以为很牛,但是同时问我怎么知道的,我说在意片博客上看到的。话刚刚说出口我就觉得一点说服力都没有。然后就说:我好像在mysql的帮助文档上面也看过(其实我没看见过)。老板说:帮助文档也不一定对,版本不一样可能会有修改,还是试一试比较好。

确实,我想了想我所学到的这些只是估计80%都是从网上的博客里看来的,就算是官方文档也可能有版本上的问题而有微小的改变。除了一些代码,像这种知识我确实没有时间过。先买那我就给大家实践一下。

首先需要打开两个mysql的窗口


然后创建一个表 表中有两个字段,其中一个设为索引,另一个不设:


然后加入数据:


下面我们开启事物然后更新大家就能明白了:


然后再在另一个窗口更新


但是呢已经死锁了,跟们没有结果知道我们在第一个窗口commit才可以

然后我们再试试更新其他的选项:


没有问题,所以是行锁,不是表锁。然后我们不用id做条件试试



可见再没有索引的前提下这是表锁,哈哈,虽然很简单,但是我想说的是:估计这是除了代码外的第一次用实践得出来的知识。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值