mysql事务 select会自动加锁吗?
总结:mysql事务select 只是进行了隔离,保证数据的一致性,并没有加锁,如果要加锁可以用for update。
验证下:
新建一张表user 添加两个字段,id,name,随便添加几条数据。
打开一个mysql会话(窗口1)
执行如下语句
begin;
select * from user where id=1;复制
新开窗口2执行更新操作
update user set name='rain' where id=1;复制
可以成功更新但是窗口1中的事务读取到的还是以前的数据,从而说明第一个窗口的事务里的select并没有锁,但是具有隔离性并没有读取到窗口2里面更新后的数据。
下面回到第一个窗口1将select语句锁住
select * from user where id=1 for update;复制
再回到窗口2进行更新操作,发现导致了mysql阻塞,更新失败,从而说明窗口1的select被锁住。
当窗口1的事务提交后,窗口2的update执行成功。
文章转载自跟着阿笨一起玩NET,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【MySQL 30周年庆】MySQL 8.0 OCP考试限时免费!教你免费领考券
墨天轮小教习
2979次阅读
2025-04-25 18:53:11
MySQL 30 周年庆!MySQL 8.4 认证免费考!这次是认真的。。。
严少安
852次阅读
2025-04-25 15:30:58
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
496次阅读
2025-04-17 17:02:24
MySQL 9.3 正式 GA,我却大失所望,新特性亮点与隐忧并存?
JiekeXu
436次阅读
2025-04-15 23:49:58
3月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
373次阅读
2025-04-15 14:48:05
MySQL 8.0 OCP 1Z0-908 考试解析指南(二)
JiekeXu
292次阅读
2025-04-30 17:37:37
记录MySQL数据库的一些奇怪的迁移需求!
陈举超
279次阅读
2025-04-15 15:27:53
SQL优化 - explain查看SQL执行计划(下)
金同学
274次阅读
2025-05-06 14:40:00
MySQL 8.0 OCP 1Z0-908 考试题解析指南
青年数据库学习互助会
257次阅读
2025-04-30 12:17:54
MySQL 30 周年庆!MySQL 8.4 认证免费考!这次是认真的。。。
数据库运维之道
249次阅读
2025-04-28 11:01:25