0
点赞
收藏
分享

微信扫一扫

MySql的表锁行锁及间隙锁

上一篇 <<<MySQL索引底层结构与实现原理
下一篇 >>>MySQL的并发文件及事务隔离级别


1.表锁

1.1 对表加读锁

1.2 对表加写锁

1.3 总结

2.行锁

SessionA操作:
begin;
update jarye_account  set name='jarye6'  where balance='300';
commit;
在没commit的时候,会形成锁表,只能删除表锁unlock tables;

3.间隙锁

sessionA操作:
begin;
update jarye_account  set name='jarye6' where id>18 and id<22;
commit;

从id>18 and id <22 上了间隙锁,在没有释放锁的时候 其他的session无法对该段位做操作。

sessionB
insert into `jarye_account` values (19, 'jarye19', '500');

4.优化注意事项

tips:项目中更多锁的情况请参考并发编程-锁的深入化、并发编程-锁的优化


推荐阅读:
<<<MySQL发展历程与整体架构
<<<MySql连接空闲8小时自动断开的原因及连接池配置方法
<<<查询和更新sql语句执行原理
<<<MySQL存储引擎汇总
<<<InnoDB存储引擎的Buffer Pool 缓冲池底层结构
<<<Too many connections分析与processlist解读
<<<MySQL索引底层结构与实现原理
<<<MySQL的并发文件及事务隔离级别
<<<MySQL的MVCC多版本控制原理
<<<MySQL常用命令汇总

举报

相关推荐

0 条评论