第46问(MySQL 使用的文件句柄突增, 该如何诊断)
文章图片
问
MySQL 使用的文件句柄数 突然增加, 我们该如何诊断
实验
我们接着宽油起一个数据库:
文章图片
翻倍法造表 a :
文章图片
将 a 表造的大一点:
文章图片
给 a 表追加一列:
【第46问(MySQL 使用的文件句柄突增, 该如何诊断)】
文章图片
再造个表 b :
文章图片
让我们来下一个 SQL :
文章图片
在 SQL 执行的过程中, 观察 MySQL 的文件句柄数, 发现文件句柄在不断上升:
文章图片
现在我们来诊断 为什么 MySQL 的文件句柄数会上升.
我们动用 perf , 来追踪 打开句柄的系统调用
文章图片
然后我们调用 perf script , 经过一段等待后我们会得到不少结果, 我们摘取其中片段:
文章图片
我们可以看到, 句柄的使用与 Hash Jo in 相关: Hash Join 过程中, 需要将 Probe Row 写入磁盘.
我们查找一下 MySQL Work Log (https://dev.mysql.com/worklog...), 来理解一下 Hash Join 的设计:
文章图片
赠送章节
我们还可以通过 performance_schema 来查看文件句柄的使用:
select * from performance_schema.file_instances;
输出如下:
文章图片
?
我们可以看到这些句柄与 Hash Join 有关, 但具体与哪个步骤有关, 我们还是要通过 perf 才能分析.
关于 MySQL 的技术内容,你们还有什么想知道的吗?赶紧留言告诉小编吧!
推荐阅读
- 热闹中的孤独
- 第6.2章(设置属性)
- parallels|parallels desktop 解决网络初始化失败问题
- 2018-02-06第三天|2018-02-06第三天 不能再了,反思到位就差改变
- 第三节|第三节 快乐和幸福(12)
- EffectiveObjective-C2.0|EffectiveObjective-C2.0 笔记 - 第二部分
- android第三方框架(五)ButterKnife
- 开学第一天(下)
- 野营记-第五章|野营记-第五章 讨伐梦魇兽
- 进必趋|进必趋 退必迟,问起对 视勿移