美文网首页
mysql update 锁的问题

mysql update 锁的问题

作者: 京_阿_尼 | 来源:发表于2020-07-15 14:18 被阅读0次

准备

建表语句

create table if not exists tab_no_index
(
    id int null,
    name varchar(10) null
);

create index ind_tab_no_index_id
    on test.tab_no_index (id);

插入数据

INSERT INTO tab_no_index (id, name) VALUES (1, '1');
INSERT INTO tab_no_index (id, name) VALUES (2, '2');
INSERT INTO tab_no_index (id, name) VALUES (3, '3');
INSERT INTO tab_no_index (id, name) VALUES (4, '4');

场景

场景一

根据 id 字段进行更新,验证是锁当前行。

截屏2020-07-15 下午2.06.37.png

sql 执行时序

session 1 session 2
start transaction;
start transaction;
update tab_no_index set name=11 where id=1
update tab_no_index set name=22 where id=2

以上顺序执行sql,session 2的 update 语句不会被阻塞。

场景二

根据 name 字段进行更新,验证是锁所有行。

截屏2020-07-15 下午2.09.27.png
sql 执行时序
session 1 session 2
start transaction;
start transaction;
update tab_no_index set id=11 where name=1
update tab_no_index set id=22 where name2

以上顺序执行sql,session 2的 update 语句被阻塞。

相关文章

  • mysql update 锁的问题

    准备 建表语句 插入数据 场景 场景一 根据 id 字段进行更新,验证是锁当前行。 sql 执行时序 sessio...

  • mysql for update 总结

    MySQL中select * for update锁表的问题 页级:引擎 BDB。 表级:引擎 MyISAM , ...

  • mysql的悲观锁和乐观锁

    1、悲观锁原理:MySQL update单线操作。操作:select 语句 添加for update,结束事件:1...

  • mysql的悲观和乐观锁

    谈谈mysql的悲观和乐观锁 - 周伯通的麦田 - 博客园 悲观锁 select … for update 乐观锁...

  • 蚂蚁面试

    1、mysql乐观锁和悲观锁的区别? 乐观锁通过MVCC,版本实现,悲观锁select... for update...

  • MySQL中select * for update锁表的问题

    ———————————MySQL—————————————————– MySQL中select * for upd...

  • 经典问题处理记录

    1.mysql update操作死锁问题 故障描述 日志监控发现少量数据库死锁异常 问题原因 设计方案使用悲观锁s...

  • RC隔离级别下锁表现

    前提: mysql:8.0.20 非锁引 session1:begin;session1:update user ...

  • MySQL - for update 行锁 表锁

    for update 的作用是在查询的时候为行加上排它锁,当一个事务的操作未完成时候,其他事务可以读取但是不能写入...

  • select+update引发的一些思考(4)真相大白

    捋捋思路,本章是一个总结,回答下前面的问题! A: Q1. UPDATE的行锁问题? update操作时自带了行锁...

网友评论

      本文标题:mysql update 锁的问题

      本文链接:https://www.haomeiwen.com/subject/ewidhktx.html