数据库锁
乐观锁:乐观锁认为一般情况下数据不会造成冲突,所以在数据进行提交更新时才会对数据的冲突与否进行检测(适用于多读少写)。
悲观锁:在整个数据处理过程中,将数据处于锁定状态(适用于多写少读)。
行级锁:一行数据被一个事务操作(增删改),这行数据会被锁住,其他事务需要等待行锁解锁后才能操作该行数据。
表级锁:表的索引失效,事务隔离级别为顺序读等导致整个表被锁住,其他事务无法操作该表。
间隙锁:一个事务对表的一个范围数据进行操作(如:select..where id>5 and id <20;),该范围的数据会被锁住,其他事务无法在该范围操作数据。间隙锁可防止幻读和数据误删改。
查看数据库中锁的状态:
show status like "%lock%";