事务的四大特性(ACID)中,隔离性(Isolation)是一个非常重要的特性。隔离性能保证不同的事务操作相同数据(表或行)时互相不干扰,进而保证数据的一致性。其中锁机制是实现事务隔离级别的一种重要方案(另一种是MVCC)。今天我们主要来了解一下MySQL锁的原理。
前提知识
一、怎么开启数据库事务?
1)手工开启事务:
begin / start transaction;
2)设定事务是否自动开启(off代表事务不会自动提交):
set session autocommit = on/off;
二、怎么结束事务?
1)提交或者回滚都会结束事务:
commit / rollback;
三、怎么加锁?
1)自动加锁:
delete / update / insert 语句会自动加上排他锁;
2)手动加排它锁:
select * from student where id=1 FOR UPDATE;
锁是在事务结束的时候释放的,所以如果没有手工开启一个事务,或者没有设置事务自动提交为关闭(off),锁也随事务的自动提交而释放。