mysql 字段锁_MySQL锁,你真的理解么?

MySQL锁

1、基本概念

锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中的数据也是一种供多个用户使用的共享资源,

当多个用户并发地存取数据时,在数据库加锁的目的可以保证数据库数据的一致性。锁的类型

在数据库中,对数据的操作其实只有两种,即读和写,所以可用共享锁和互斥锁实现,即共享锁间之间是兼容的,而互斥锁间不兼容。共享锁(读锁):允许事务读

互斥锁(写锁):允许事务删除或者更新一行数据

共享锁代表了读操作、互斥锁代表了写操作,所以我们可以在数据库中并行读,但是只能串行写,只有这样才能保证不会发生线程竞争,实现线程安全。锁的粒度

我们按照锁的粒度可以分为全局锁、表锁和行锁,不同的存储引擎拥有的锁粒度是不同的

在下面的文章中,我们按照锁粒度的划分分别学习全局锁、表级锁和行锁

2、全局锁

2.1基本概念

从名称上就可以看出,全局锁是对整个数据库实例加锁。MySQL提供了一个加全局读锁的方法,即Flush tables with read lock (FTWRL)。当对数据库使用这个命令时,数据库将会处于只读状态,之后的其它线程的语句:如数据更新语句(数据的增删改)DML,数据的定义语句(表结构的修改)DDL均会被阻塞。

2.2使用场景

全局锁的典型使用场景是做数据库逻辑备份,也就是将整个库中的所有表都select出来存成文本。在备份过程中的整个库要处于只读状态,这会存在以下问题如果你在主库上备份,那么在备份期间都不能执行更新,业务基本上就能停止

如果你在从库上备份&

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值