接到报警通知,负载过高,达到800%,load也过高,有11了。

MySQL版本为5.6.12-log

1 top 之后,确实是mysqld进程占据了所有资源。

2 查看error日志,无任何异常

3 show eninge innodb status\G,没有死锁信息。

4 show full processlist;

没有耗时非常大的慢sql再跑。看并发,当前的线程总数量也才30个左右。

5 查看iostat,读写正常。

到底是什么问题呢?查看slow log,发现如下SQL,频繁执行,耗时在5秒之间,explain有Using join buffer (Block Nested Loop)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
mysql> explain select web_page_object.web_page_object_id,
    ->     web_page_object.object_id,
    ->     web_div_name,web_page_object.position_sort,web_page_object.end_time,om1.label,om1.file,jump_url,om2.label as label1,om2.file as file1
    ->     from web_page_div,web_page_object,object_media as om1,object_media as om2
    ->     where web_page_div.id=web_page_object.web_page_div_id
    ->     and web_page_object.object_media_id=om1.object_media_id
    ->     and web_page_div.web_page_id=1200
    ->     and if(web_page_object.object_media_id1=0,
    ->             web_page_object.object_media_id=om2.object_media_id,
    ->             web_page_object.object_media_id1=om2.object_media_id)
    ->   
    ->     and '2014-05-01 15:09:49'>=start_time
    ->     and '2014-05-01 15:09:49'<= end_time
    ->  
    ->     and object_status=0
    ->     order by web_page_div.id,web_page_object.position_sort;
+----+-------------+-----------------+--------+-----------------------+---------+---------+-------------------------------------------+-------+----------------------------------------------------+
| id | select_type | table           | type   | possible_keys         | key     | key_len | ref                                       | rows  | Extra                                              |
+----+-------------+-----------------+--------+-----------------------+---------+---------+-------------------------------------------+-------+----------------------------------------------------+
|  1 | SIMPLE      | web_page_object | ALL    | object_media_id_index | NULL    | NULL    | NULL                                      | 51165 | Using where; Using temporary; Using filesort       |
|  1 | SIMPLE      | web_page_div    | eq_ref | PRIMARY,idx           | PRIMARY | 4       | db_jiapin.web_page_object.web_page_div_id |     1 | Using where                                        |
|  1 | SIMPLE      | om1             | eq_ref | PRIMARY               | PRIMARY | 4       | db_jiapin.web_page_object.object_media_id |     1 | Using where                                        |
|  1 | SIMPLE      | om2             | ALL    | NULL                  | NULL    | NULL    | NULL                                      | 74759 | Using where; Using join buffer (Block Nested Loop) |
+----+-------------+-----------------+--------+-----------------------+---------+---------+-------------------------------------------+-------+----------------------------------------------------+
Using join buffer (Block Nested Loop)

看SQL是where后面的if判断引起的,拆分if之后,就正常了,SQL耗时不到0.1秒。数据库load也降下来了。

还记录以前碰到的

?
1
(Block Nested Loop)的案例是 join后面的on条件里面有or判断。
?
1
也会引起Block Nested Loop,导致数据库负载过高。

线上飙升800%,load达到12的解决过程相关推荐

  1. mysql的cpu飙升到500_[MySQLCPU]线上飙升800%,load达到12的解决过程

    接到报警通知,负载过高,达到800%,load也过高,有11了. MySQL版本为5.6.12-log 1 top 之后,确实是mysqld进程占据了所有资源. 2 查看error日志,无任何异常 3 ...

  2. 线上服务器CPU负载过高的问题解决过程

    线上服务器CPU负载过高的问题解决过程 一.找到CPU占用过高进程 执行top命令,发现PID为12443的Java进程占用CPU高达350%,出现故障. 二.定位具体线程或代码 找到该进程后,接下来 ...

  3. 线下auc涨,线上ctr/cpm跌的原因和解决办法

    " 这两年深度模型大火之后,各个团队都卯足了劲把网络规模做大做深,花了很大力气好不容易离线auc涨了不少,上线一看效果ctr和cpm反而下降.本文例举几种可能的原因和解决办法." ...

  4. java close wait过多_我是如何确认线上CLOSE_WAIT产生的原因及如何解决的。

    1.阐述 内部架构:Tomcat应用程序---> nginx ---> 其他Tomcat应用程序,内部Tomcat应用通过nginx调用其他应用. HTTP插件:HttpClient 4. ...

  5. Python/Django读取doc文档及在IIS8.5上部署所经历的波折及解决过程

    Tips(碰到的主要问题): doc转docx "无效的类的字符串" DCOM组件拒绝访问 NoneType has no attribute SaveAs 简要的业务过程:把Wo ...

  6. 上不了网,我的解决过程

    今天回到家很奇怪,我和正常一样开始网上冲浪喽,可是发现一个问题,我的网页开不了.提示:Internet Explorer 无法显示该页面.我就郁闷了,我网内有四台机子,别人浏览网页很正常,我能上Q但是 ...

  7. 最后两天-微生物组-宏基因组分析(线上/线下同时开课,2020最后一期)

    福利公告:为了响应学员的学习需求,经过易生信培训团队的讨论筹备,现决定安排扩增子16S分析.宏基因组.Python课程和转录组的线上直播课.报名参加线上直播课的老师可在1年内选择参加同课程的一次线下课 ...

  8. 最后一周报名微生物组-宏基因组分析(线上/线下同步开课,2020最后一期)

    福利公告:为了响应学员的学习需求,经过易生信培训团队的讨论筹备,现决定安排扩增子16S分析.宏基因组.Python课程和转录组的线上直播课.报名参加线上直播课的老师可在1年内选择参加同课程的一次线下课 ...

  9. 深度聚焦 3 大技术领域,阿里云将重磅亮相首届线上 KubeCon

    2020 年 7 月 31 日至 8 月 1 日, 由 Cloud Native Computing Foundation (以下简称 CNCF) 主办的云原生技术大会 Cloud Native + ...

最新文章

  1. 小游戏“终结者”程序的设计与实现
  2. Hibernate的事件机制
  3. java 统计单词个数和标点符号
  4. 废弃P-value,还是学学如何评估统计检验结果?
  5. iframe父子级页面传值支持跨域访问javascript
  6. Java读取excel文件 将Excel文件变为二维String数组 .
  7. leetcode 《简单》 设计问题 Python实现
  8. mysql基准测试总结 一
  9. keydown - keypress - keyup 用法和区别
  10. 用计算机制作贺卡,用计算机制作贺卡的操作步骤
  11. 不踩坑的Python爬虫:如何在一个月内学会爬取大规模数据
  12. 云服务器可以安装凤凰系统吗,云服务器安装凤凰
  13. 单相和三相电源的区别
  14. 【详细】mac下载在线音乐平台的音乐/mp4a转mp3格式
  15. Ins图片爬取(基于python,selenium)
  16. Trojan.Win32.Scar.cjdy分析
  17. win10 常用快捷键
  18. 如何处理Git中没有小绿勾的问题
  19. 博弈美业SAAS系统,美业系统源码-主要功能
  20. outlook打开总是要输入密码,怎么办?

热门文章

  1. Objective-C block
  2. [转载]MongoDB开发学习 经典入门
  3. 深入Managed DirectX9(四)
  4. python考证什么时候报名-2019年3月上海计算机二级考试报名时间安排 什么时候报名...
  5. python列表按照指定顺序排序-Python常见排序操作示例【字典、列表、指定元素等】...
  6. python怎么加载图片-如何用python获取图像
  7. python绘制散点图-Python:matplotlib绘制散点图
  8. python画图颜色-python中matplotlib的颜色及线条控制的示例
  9. python 贴吧自动回复机-python借助wxpy与图灵实现微信机器人自动回复消息
  10. php和python区别-编程语言之PHP与Python之间的差异