mysql lucene怎么读_MySQL实战 -- 可重复读 与 幻读

本文通过实例详细讲解了数据库事务的隔离级别,特别是可重复读(Repeatable Read)级别下如何操作。在section1中创建并插入数据,然后在section2中开启事务进行更新,并在提交后,section1无法看到更新。通过使用`SELECT ... FOR UPDATE`,展示了悲观锁的工作原理,即在读取数据时锁定行,确保数据一致性。
摘要由CSDN通过智能技术生成

事物隔离级别是可重复度:

section 1:

(1)创建数据库: create DATABASE TESTDB;

(2)创建表:

CREATE TABLE `t` (   `id` int(11) NOT NULL,   `c` int(11) DEFAULT NULL,   PRIMARY KEY (`id`) ) ENGINE=InnoDB;

(3)插入数据:

insert into t(id, c) values(1,1),(2,2),(3,3),(4,4);

(4)select * from t;

e7189f6b4243d8b0fc5f482a28046b21.png

section 2:

(1) beging;

(2)更新数据:update t set c=0 where id=c;

(3)commit;    事物的提交,因为行锁,section 1 做不了改行的操作。

(4)select * from t;

20c2a1f5f66c1dcd0feabbbe96ca9f08.png

然而: section 1: 执行:  select * from t;     还是没有更新的数据:

f97aa8f9aa1ba31e18d5b30d373fb990.png

但是使用:select * from t for update;    可以获取更新的数据,这就是悲观锁了。

2e1ad6d74ea9d4a1c2dbc0a778666c01.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值