表锁,行锁
锁是用于管理不同事务对共享资源的并发访问
表锁与行锁的区别:
锁定粒度:表锁 > 行锁
加锁效率:表锁 > 行锁
冲突概率:表锁 > 行锁
并发性能:表锁 < 行锁
InnoDB存储引擎支持行锁和表锁(另类的行锁),InnoDB的表锁是通过行锁把所有行都锁住实现的,他本身是不支持表锁的。
InnoDB锁类型
这八种锁中,后面三种锁只能算是行锁的算法
共享锁(行锁):Shared Locks l
排它锁(行锁):Exclusive Locks l
意向锁共享锁(表锁):Intention Shared Locks l
意向锁排它锁(表锁):Intention Exclusive Locks l
自增锁:AUTO-INC Locks
行锁的算法
记录锁 Record Locks l
间隙锁 Gap Locks l
临键锁 Next-key Locks
共享锁:
又称为读锁,简称S锁,顾名思义,共享锁就是多个事务对于同一数据可以共享一把锁, 都能访问到数据,但是只能读不能修改;
加锁方式: select * from users WHERE id=1 LOCK IN SHARE MODE;
释锁:commit/rollback
排他锁:
又称为写锁,简称X锁,排他锁不能与其他锁并存,如一个事