锁分类按功能分类1.共享锁读锁允许同一个数据被加多个读锁读取相互不阻塞但是无法再被添加写锁不允许其他事务修改当前读锁所保护的数据.加锁方式select.lock in share mode2.排他锁写锁当一个数据被加了写锁其他事务就不能对其上任何锁不支持任何其他的读取与修改.加锁方式select.for update按锁粒度分类1.全局锁针对整个数据库执行全局层面的锁上锁后任何对该数据库的DDL DML语句都无法执行只能进行查询操作.一般使用场景是用于数据库备份.但不建议使用该方法因为阻塞所有非读操作会影响业务的正常执行.因此innodb下执行全库备份时可以在mysqldump指令后使用single transaction参数利用mvcc提供一致性视图保证数据性不使用全局锁.