mysql之加锁

锁分类

全局锁

针对整个数据库实例加锁,加锁后数据库状态为只读。数据增删改,修改表,创建表等变更都会被阻塞。
命令:Flush tables with read lock (FTWRL)
使用场景:做全库逻辑备份
缺陷:在备份期间业务停止。
其他方式:官方自带的逻辑备份工具是 mysqldump。当 mysqldump 使用参数–single-transaction 的时候,导数据之前就会启动一个事务,来确保拿到一致性视图。而由于 MVCC 的支持,这个过程中数据是可以正常更新的。(隐含条件:支持事务的引擎,可重复读的隔离级别)
不使用 set global readonly=true的缺点:
一:有些系统 readonly 的值会被用来做其他逻辑,比如用来判断一个库是主库还是备库。
二是:客户端发生异常断开情况下,FTWRL 会自动释放,readonly会一直保持当前状态。

表级锁

表锁

作用:针对某张表的读写锁定。
命令:lock tables … read/write。 主动释放或者链接断开释放。
限制:当前链接线程只能严格根据上锁的语句操作,如read A,write B,就只能 读A,写B。其他操作都不允许。写包含(读写ÿ

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值