2021年3月28日

mysql覆盖索引与回表

摘要: select id,name where name='shenjian' select id,name,sex* where name='shenjian'* 多查询了一个属性,为何检索过程完全不同? 什么是回表查询? 什么是索引覆盖? 如何实现索引覆盖? 哪些场景,可以利用索引覆盖来优化SQL? 阅读全文

posted @ 2021-03-28 14:44 myf008 阅读(77) 评论(0) 推荐(0) 编辑

MYSQL-间隙锁详解

摘要: 间隙锁(Gap Lock)是Innodb在提交下为了解决幻读问题时引入的锁机制,(下面的所有案例没有特意强调都使用可重复读隔离级别)幻读的问题存在是因为新增或者更新操作,这时如果进行范围查询的时候(加锁查询),会出现不一致的问题,这时使用不同的行锁已经没有办法满足要求,需要对一定范围内的数据进行加锁 阅读全文

posted @ 2021-03-28 13:15 myf008 阅读(4553) 评论(0) 推荐(2) 编辑

MySQL InnoDB(Spring)并发事务导致的死锁及解决方案

摘要: 前提:InnoDB存储引擎 + 默认的事务隔离级别 Repeatable Read用MySQL客户端模拟并发事务操作数据时,如下表按照时间的先后顺序执行命令,会导致死锁。数据库数据如下,id为主键。 select * from a ;+ +| id |+ +| 3 |+ +| 8 |+ +| 11 阅读全文

posted @ 2021-03-28 12:13 myf008 阅读(1690) 评论(0) 推荐(0) 编辑

导航