按锁粒度
全局锁:对整个Database进行加锁,由MySQL的SQL Layer层实现
全局锁是对整个数据库实例加锁,加锁后整个实例就处于只读状态,后续的DML的写语句、DDL语句和已经更新操作的事务进行提交语句都将被阻塞。
用途:全库的逻辑备份
flush tables with read lock; ## 加全局锁
unlock tables; ### 释放全局锁
表级锁:对某个Table进行加锁,由MySQL的SQL Layer层实现
表级锁又分为表读锁、表写锁、元数据锁、自增锁
lock table 表名称 read(write), 表名称2 read(write), 其他。。。 ### 格式
lock table test read ### 为表test添加读锁
lock table test write ### 为表test添加写锁
show open tables ### 查看表锁情况
unlock tables ### 释放表锁
元数据锁