全局锁和表锁什么场景会用到

本文介绍了MySQL中的全局锁和表级锁,包括它们的用途和操作方法。全局锁常用于数据库备份,特别是在使用mysqldump时。表级锁分为表锁和元数据锁,适用于大表更新或防止死锁。元数据锁(MDL)用于维护事务与DDL操作的数据一致性。避免长时间锁等待和业务高峰时执行DDL是良好的数据库管理实践。
摘要由CSDN通过智能技术生成

数据库往往是多个用户在连接使用的,那么**如何保证数据并发访问的一致性、有效性呢?**首先我们看一下MySQL的锁机制。
根据加锁的范围,MySQL中的锁可分为三类:

  • 全局锁;
  • 表级锁;
  • 行锁;

1. 全局锁

MySQL全局锁会关闭所有打开的表,并使用全局读锁锁定所有表,其命令为:

flush tables with read lock;

当执行上面这个命令后,所有的表都变成只读状态,数据更新或者字段更新都将会被阻塞,可以使用下面命令解锁:

unlock tables;

全局锁一般会在什么时候用到呢?
全局锁一般用在整个库做备份(mysqldump)时。也就是说在整个备份过程中,整个库都是只读的。

  • 如果是主库备份,会导致业务不能修改数据;
  • 如果是
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值