一.为什么要加锁?
数据库锁机制简单来说,就是数据库在多事务并发处理时,为了保证数据的一致性和完整性,数据库需要合理地控制资源的访问规则。锁是一种资源,这个资源是和事务关联在一起的,当某个事务获取了锁,在提交或回滚之前,就一直持有该锁。
二.锁的分类
根据锁类型划分
共享锁(读锁):其他事务可以读,但不能写。
排他锁(写锁):其他事务不能读取,也不能写。
根据加锁的范围划分
全局锁、表锁和行锁三类。
全局锁全局锁就是对整个数据库实例加锁。当你需要让整个库处于只读状态的时候,可以使用这个命令,之后其他线程的以下语句会被阻塞:数据更新语句(数据的增删改)、数据定义语句(包括建表、修改表结构等)和更新类事务的提交语句。全局锁的典型使用场景是,做全库逻辑备份。
全局锁的命令:<