• 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 解决方案: 进行读写分离拆分,进一步进行观察

  • 相关阅读:
    virtual 关键字
    innerhtml和innertext的用法以及区别
    CSS中overflow:hidden
    CSS中的repeat
    VC++6.0打开文件出错的解决办法
    HTML+CSS基础总结
    Guid算法
    SQL初级阶段笔记
    text-decoration
    IDEA 在同一目录创建多个项目
  • 原文地址:https://www.cnblogs.com/danhuangpai/p/10113549.html
Copyright © 2020-2023  润新知