美文网首页
2019-07-28第六讲: 全局锁和表锁

2019-07-28第六讲: 全局锁和表锁

作者: Mr钧 | 来源:发表于2019-07-28 19:45 被阅读0次

1. 全局锁:  how: 做全库逻辑备份    

    为什么不使用: set global readonly = true; 这种方式呢 ? 

    原因1. readonly参数可能会用来做其他逻辑, 如区分主备库;

    原因2. 全表锁异常,会回滚; readonly 异常会保持, 导致全库只读.

2. 表级锁:  what :  MDL 锁;  表锁.

    表锁:  what : lock tables ... read/ write

    MDL锁: what : 在访问一个表时,就会被自动加上. 

            how: 用于保证DDL操作的正常运行. 

    一个MDL锁的坑: 

    前提: 给一个表加字段, 修改字段, 加索引, 都是要走全表扫描. 

    1.A B都是加MDL读锁,所以不冲突

    2.C要加MDL写锁 , 与A的读锁冲突, blocked

    3.D需要MDL读锁, 会被MDL写锁阻塞(即使MDL写锁没有加成功)

    4.再加上客户端有重试机制, 超时后会重新起一个seesion, 这个库的线程很快会爆满;

3.如何安全的给小表加字段: 

    1.kill 掉长事务

    2.alter table 语句设定等待时间, 确保不会阻塞后面的业务语句. 

疑问1: MDL锁会等到事务提交才释放... 全部锁都是事务提交才释放把?  行锁, 间隙锁? 

根据试验结果 ==>是的. 

相关文章

  • 2019-07-28第六讲: 全局锁和表锁

    1. 全局锁: how: 做全库逻辑备份 为什么不使用: set global readonly = true...

  • Mysql的锁

    MySql锁的分类 Mysql里的锁大致可以分为全局锁、表级锁和行锁三类。 全局锁 Mysql 增加全局锁的方法:...

  • MySQL听讲(四)——数据库锁

    数据库的锁分为全局锁、表锁、行锁。 科普 锁的缩写:MDL(metadata lock):元数据锁。 全局锁 表锁 行锁

  • 06 | 全局锁和表锁 :给表加个字段怎么有这么多阻碍?

    根据加锁的范围,MySQL 里面的锁大致可以分成全局锁、表级锁和行锁三类。今天这篇文章,我会和你分享全局锁和表级锁...

  • 全局锁和表锁

    全局锁 对整个数据库实例加锁 使用场景:做全库逻辑备份时,为了保证备份期间的库在同一个逻辑时间点,即一致性视图(类...

  • 又一个mysql面试必问的东西mysql锁

    mysql锁 MySQL里面的锁大致可以分成全局锁、表级锁和行锁三类。 全局锁 全局锁就是对整个数据库实例加锁。M...

  • MySQL 锁

    根据加锁的范围,MySQL里面的锁大致可以分亨全局锁、表锁和行锁。 全局锁 全局锁就是对整个数据库实例加锁。MyS...

  • MYSQL(03)-锁

    MySQL 里面的锁大致可以分成全局锁、表级锁和行锁三类 全局锁 全局锁就是对整个数据库实例加锁,mysql提供了...

  • mysql全局锁和表锁

    MySQL中的锁可以分为三类:全局锁,表级锁和行锁。 全局锁 全局锁是对整个数据库加锁,可以让整个数据库处于只读状...

  • 5、全局锁和表锁

    根据加锁范围:MySQL里面的锁可以分为:全局锁、表级锁、行级锁 全局锁: 对整个数据库实例加锁。 MySQL提供...

网友评论

      本文标题:2019-07-28第六讲: 全局锁和表锁

      本文链接:https://www.haomeiwen.com/subject/kfpprctx.html