十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
本篇文章为大家展示了MySQL中如何理解Semaphore wait与undo log,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
10年积累的成都网站建设、成都网站制作经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站制作后付款的网站建设流程,更有中山免费网站建设让你可以放心的选择与我们合作。
场景:
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_ua ua 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.col1 desc , SUM(IFNULL(asf.col2,0)) desc, a.col3 desc
limit 28
上述内容就是MySQL中如何理解Semaphore wait与undo log,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。