《MySQL学习》 全局锁和表锁

一.MySQL锁的分类

二.全局锁

全局锁对整个数据库加锁,可以执行如下命令,整个数据库都将处于只读状态。

Flush tables with read lock ;

我们可以执行 unlock table进行解锁

unlock table ;

全局锁的典型使用场景 -- 全库逻辑备份

当执行 命令后,整个库都将处于只读状态,在只读状态下对整个数据库做备份,但这样做是有风险的

Flush tables with read lock ;

  1. 如果在主库上做备份,那么在整个备份期间都不能做更新操作,业务无法进行。
  2. 如果在从库上做备份,那么从库将不能执行从主库同步更新过来的binlog日志,导致主从延迟

虽然加全局锁有风险,但是如果不在全局锁,因为不同表之间的执行顺序不同进而备份的时间不同。如果某个表在这个时间差中进行了更新并且成功被备份,而与其有关联的表已经在之前备份完毕已无法更新。此时就发生备份库与被备份库数据不一致。

三.表级锁

MySQL在表级别的锁有两种,分别是表锁与元数据锁(Meta data lock MDL)

表锁

表锁的语法是 lock tables … read/write。与 FTWRL 类似,可以用 unlock tables 主动释放锁,也可以在客户端断开的时候自动释放。需要注意,lock tables 语法除了会限制别的线程的读写外,也限定了本线程接下来的操作对象。

元数据锁

元数据锁 不需要显式使用,在访问一个表的时候会被自动加上。MDL 的作用是,保证读写的正确性。

元数据锁是server层的锁,表级锁,主要用于隔离DML(Data Manipulation Language,数据操纵语言,如select)和DDL(Data Definition Language,数据定义语言,如改表头新增一列)操作之间的干扰。每执行一条DML、DDL语句时都会申请MDL锁,DML操作需要MDL读锁,DDL操作需要MDL写锁(MDL加锁过程是系统自动控制,无法直接干预,读读共享,读写互斥,写写互斥)

全部评论
学习一下,谢谢分享
点赞 回复 分享
发布于 2023-02-16 17:42 四川
m了,感谢分享
点赞 回复 分享
发布于 2023-02-16 17:33 云南

相关推荐

01-12 14:08
门头沟学院 Java
有寒假来武汉小米总部实习的大学生嘛,我也是小米的员工,想找合租舍友,仅限女生可免租半月,二月初可入住,也就是说房租是2.15开始算的哦~也可以将行李提前放过来~房屋介绍:1、房子情况:有电梯;租的是三室一厅一卫一厨, 但是有个卧室比较小,不打算找人,只住两个人就可以了;衣柜也很大,可以放下很多衣服;房屋采光真的很好,早上起来可以在床上晒太阳的那种,十分惬意(夏季晚上十分好看!)2. 楼下离我们很近的地方有小吃街和一个两层大超市(大概步行两分钟多就可以走到) ,还有一个新开的麦当劳,晚上可以去吃小吃,购买物资也可以去大超市;3. 房子基本设施齐备(洗衣机,冰箱,空调,油烟机,热水器);4. 我有稳定的工作,生活中很注意卫生,周末有时间会自己做饭,可以投喂哦~5. 出行:距离公交站步行10分钟不到,距政务中心,武汉小米总部三站(晚上我都是走回来的,很近的~);一个比较进的地铁,距离大概1km左右;出入我觉得很方便;6. 房租:1150每月,押一付二,无物业费,也没有中介费和其他额外费用。7. 民用水电燃气,用多少交多少,水电费正常平摊。希望你是:1. 女生(本人女),不带异性回家,如有同性朋友来玩,最多过夜一晚;2. 爱干净,讲卫生,作息正常,不吵闹,有稳定工作;3. 好沟通,有任何问题一定要沟通,不要闷着!中介勿扰,非诚勿扰!!!希望不要浪费彼此的时间诚心有意向的可以联系我看房
租房找室友
点赞 评论 收藏
分享
01-15 13:45
门头沟学院 Java
牛客92772631...:boss招聘挂岗位是要花钱的,花了钱不挂白不挂,别那么焦虑,但是也要做好跳槽的准备
找实习记录
点赞 评论 收藏
分享
评论
1
3
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务