zoukankan      html  css  js  c++  java
  • mysql 案例 ~ insert插入慢的场景

    一简介: insert出现慢日志中,应该怎么检测呢

    二 理解:事务提交延迟,一般出现在写日志延迟的情况下,会有几种可能
        场景:
        1 RR模式下,insert等待gap lock锁导致的
        2 insert等待MDL锁导致
        3 表存在外键约束,耗时在外键检测上
        4 表没有主键

        5 表中含有blob/text和大varchar这种大字段
        6 半同步复制的延迟导致插入延迟等待
        7 DB服务器IO压力较大,导致排队,iowait很高 
              1 并发insert的线程较多
              2 并发select的线程较多
        8 磁盘空间不足导致插入延迟等待

        9  优化task慢sql,因为慢sql同样会抢占你的IO/CPU资源
    三 案例:
       1 描述:线上慢日志定期会出现insert慢日志,大概1s左右,非常奇怪
       2 排查思路:
           1 慢日志除了insert语句,并没有大表扫描的慢查询->排查慢查询的干扰
           2 观察binlog生成量,非常少,尝试调整sync_binlog参数,并没效果->排查binlog刷新的干扰
           3 尝试调整innodb_flush_commit参数,并没有效果->排查redo刷新的干扰

           4 查看innodb_buffer_pool的命中率,查看脏页刷新频率效果
           5 观察慢日志insert发生时间,大多发生在整点和半点,查看对应的qps图,发现对应的select并发非常高,找到了原因
       3 解决方案: 进行读写分离拆分,进一步进行观察

  • 相关阅读:
    [BZOJ3535][Usaco2014 Open]Fair Photography
    [LOJ#2270][BZOJ4912][SDOI2017]天才黑客
    [UOJ#122][NOI2013]树的计数
    [BZOJ4816][Sdoi2017]数字表格
    [BZOJ2154]Crash的数字表格
    [BZOJ3529][Sdoi2014]数表
    [BZOJ2820]YY的GCD
    [BZOJ2301][HAOI2011]Problem b
    [UOJ#223][BZOJ4654][Noi2016]国王饮水记
    [BZOJ4653][Noi2016]区间
  • 原文地址:https://www.cnblogs.com/danhuangpai/p/10113549.html
Copyright © 2011-2022 走看看