zoukankan      html  css  js  c++  java
  • mysql 原理~ FTWRDL

    FTWRL 锁与MDL
    一 简介:今天来聊聊为什么备份会卡住,申请不到全局FTWRL
    二 FTWRL

        1 FTWRL主要包括3个步骤:
            1.上全局读锁(lock_global_read_lock)
            2.清理表缓存(close_cached_tables)->
            3.上全局COMMIT锁(make_global_read_lock_block_commit)
      2  FTWRL针对阻塞的对象
          1 DDL操作 2 DML操作 3 FOR UPDATE操作
     3   FTWRL 与MDL锁
         MDL锁基础
          1 MDL锁本身是根据sql语句单位,而并非事务,这点要牢记
          2 FTWRL在MDL锁没有释放时进行等待,因为同样要申请
                1 长时间的sql查询语句会把持MDL锁不释放
                2 长时间的DML单条语句同样会把持MDL锁不释放
               3 长时间的DDL单条语句同样如此
    三 总结
      1 这样就基本理解了为什么备份会被卡住
      2 调整备份时间,优化sql语句,避免这种情况
      3 只要长时间的执行中的sql都会导致这种等待
    四 https://www.jianshu.com/p/2397ccc8de83 具体信息可以参考八怪大神的链接

  • 相关阅读:
    echo 变量不加引号出错
    linux以16进制方式查看文件
    批量删除符合条件的文件
    sed删除行
    linux用户环境变量
    脚本路径问题_dirname
    shell脚本返回字符串
    关于Unix时间戳
    grunt用来压缩前端脚本
    JAVA ThreadPoolExecutor(转)
  • 原文地址:https://www.cnblogs.com/danhuangpai/p/10621996.html
Copyright © 2011-2022 走看看