1,MyISAM 表锁- 并发插入性能较差
2,innoDB 行锁
3,一致性非锁定读
4,一致性锁定读
5,innodb 默认Next-Key Locking ( = Recork Lock + Gap Lock) 算法,可以避免幻读问题
(同一个事务,两次读到数据不一致),
select ...for update 会对记录进行gap lock的加锁
6,死锁-MySQL会帮你做回滚操作
7,死锁用例
- innerdb, 在sql没有用到索引的时候,用的是表级锁
RR事务级别下Gap锁的条件
- 对主键索引或者唯一索引使用Gap锁条件:如果where全部命中,则不会用Gap锁,只会加记录锁。如果where条件部分命中或全部命中,会加Gap锁
- Gap锁会用在非唯一索引或者不走索引的当前读中