上一篇 <<<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常用命令汇总