隐身守侯 提交于 2020-04-11 21:14:59

1、锁

1、全局锁

定义:全局锁就是对整个数据库实例加锁,保证数据库处于只读的状态,客户端断开主动释放锁

命令:Flush tables with read lock

适用的存储引擎:myisam

应用场景:全库备份

其他备份数据库的工具:mysqldump -single-transaction 通过事务保证一致性视图

2、表级锁

适用于不支持行锁的存储引擎,如myisam

2.1、lock

命令:lock table t1 read,t2 write

特点:锁住整个表,锁的粒度大

2.2、MDL(用于保证DDL操作与DML操作之间的一致性

对一个表进行增删改查的时候,增加MDL读锁

对一个表结构进行更新的时候,增加MDL写锁

读锁之前不互斥(可以有多个线程增删改查),读写之间互斥

注:如果要给一个表增加字段,记得加超时时间,防止一直阻塞,导致数据库宕机

 

 

 

 

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!