锁的原理和应用
1.认识锁
1.1 锁的作用
锁的作用:锁是用于管理对共享资源的并发访问,避免并发请求时对同一个数据同时修改,保证数据完整性
售票(电影票)num=1
t1 | t2 |
---|---|
select 1 | select 1 |
update num=0 | update num=0 |
commit | commit |
1.2 加锁的过程
加锁的过程
-
t1事务在一条数据上进行操作之前,先向系统发出请求,对这条记录加锁
-
加锁之后,t1事务就对这条记录产生了控制权,在t1事务释放锁之前,其他事务不能操作该条数据
1.3 锁对象:事务
锁持续时间:整个事务的过程(在commit或者rollback时释放锁)
锁范围:全局锁、表锁、行锁(record lock, gap lock, next-key lock)
锁类型:共享锁、排他锁、意向锁