• ADADADADAD

    MySQL中如何理解Semaphore wait与undo log[ mysql数据库 ]

    mysql数据库 时间:2024-11-26 22:11:41

    作者:文/会员上传

    简介:

    场景:MySQL-5.7.17, 主从架构, 业务读写分离, 只读从库不定期出现延迟, 并触发Innodb的Semaphore wait导致从库主动Crash;结论:数据库升级到5.7.19, 调整block size和buffer

    以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。


    场景:
    MySQL-5.7.17, 主从架构, 业务读写分离, 只读从库不定期出现延迟, 并触发Innodb的Semaphore wait导致从库主动Crash;

    结论:
    数据库升级到5.7.19, 调整block size和buffer_pool_instances;

    重点!:
    毕竟看不懂innodb的源代码, 没有理清楚详细的逻辑,只能对问题现象和代码碎片进行分析;

    分析:

    源代码为5.7.17
    现象上, 所有实例中只有这一个业务的实例有这种问题, 且通过更换虚拟机/物理机的方式确认了并非外部原因导致同步延迟;
    通过监控的观察, 确认了在延迟出现的时候没有突发性的CPU使用率和IO使用率;

    先上error log

      select r.id

      from tb_r r

      inner join tb_a a on r.id = a.id

      left join tb_asf asf on r.id = asf.id and asf.created_time > '2999-99-99 99:99:99'

      inner join tb_uaua on a.id = ua.id

      where r.type=0 and r.status = 0 and a.type > 0 and r.num > 0 and ua.num=2

      GROUP BY r.id

      order by a.col1desc , SUM(IFNULL(asf.col2,0)) desc, a.col3 desc

      limit 28

    MySQL中如何理解Semaphore wait与undo log.docx

    将本文的Word文档下载到电脑

    推荐度:

    下载