mysql 5.7 inno db_mysql – inno db隔离级别和锁定

我正在阅读有关innodb交易的手册,但仍然有很多不清楚的东西给我.例如,我不太了解以下行为:

-- client 1 -- client 2

mysql> create table simple (col int)

engine=innodb;

mysql> insert into simple values(1);

Query OK, 1 row affected (0.00 sec)

mysql> insert into simple values(2);

Query OK, 1 row affected (0.00 sec)

mysql> select @@tx_isolation;

+-----------------+

| @@tx_isolation |

+-----------------+

| REPEATABLE-READ |

+-----------------+

mysql> begin;

Query OK, 0 rows affected (0.01 sec)

mysql> begin;

Query OK, 0 rows affected (0.00 sec)

mysql> update simple set col=10 where col=1;

Query OK, 1 row affected (0.00 sec)

Rows matched: 1 Changed: 1 Warnings: 0

mysql> update simple set col=42 where col=2;

-- blocks

现在,最后一个更新命令(在客户端2中)等待.我希望命令执行,因为我认为只有第1行被锁定.即使客户端2中的第二个命令是插入,行为也是相同的.任何人都可以描述这个例子背后的锁定背景(锁定的地点和原因)?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值