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

接到报警通知,负载过高,达到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)

mysql> explain selectweb_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 asfile1-> from web_page_div,web_page_object,object_media as om1,object_media asom2-> 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也降下来了。

还记录以前碰到的

(Block Nested Loop)的案例是 join后面的on条件里面有or判断。

也会引起Block Nested Loop,导致数据库负载过高。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/474766.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【分享】Android JNI实例​

【分享】Android JNI实例​ Android的SDK中没有包括JNI的支持&#xff0c;而且对如何支持JNI也没有任何文档说明。不过既然整个Android平台是开源的&#xff0c;我们可以通过Google发布的源代码来找到一些线索&#xff08;比如frameworks/base/media/jni/目录&#xff09;&…

LeetCode MySQL 1098. 小众书籍

文章目录1. 题目2. 解题1. 题目 书籍表 Books&#xff1a; ------------------------- | Column Name | Type | ------------------------- | book_id | int | | name | varchar | | available_from | date | ------------------------- book_…

mysql linux 还原_linux下java还原mysql数据库

pageEncoding"UTF-8" import"java.lang.*,java.io.*,java.util.*"%>Runtime runtime Runtime.getRuntime();// 将/data/backup.sql 还原到 192.168.0.96 上的demo库 账号密码为 root rootString restore "mysql -u root -proot -h 192.168.0.96 …

解决eclipse无法解析导入org.eclipse.swt库

右键点击项目 -> Build Path -> Config Build Path...然后选择Libraries标签页&#xff0c;点击Add External JARs...再到你的eclipse安装目录下的plugins目录下寻找 org.eclipse.swt.win32.win32.x86_XXXXX.jar&#xff08;XXXXX是版本号&#xff09;。 我的对应库是org…

LeetCode MySQL 1107. 每日新用户统计

文章目录1. 题目2. 解题1. 题目 Traffic 表&#xff1a; ------------------------ | Column Name | Type | ------------------------ | user_id | int | | activity | enum | | activity_date | date | ------------------------ 该表没有主键&a…

mysql gui 有哪些_推荐五款较好的MySQLGUI工具

大多数数据库都是由两个截然不同的部分组成的&#xff1a;后端(存储数据的地方)和前端(一个用于连接数据组件的用户界面)。这种架构可以大多数数据库都是由两个截然不同的部分组成的&#xff1a;后端(存储数据的地方)和前端(一个用于连接数据组件的用户界面)。这种架构可以把用…

共享打印机的方法

共享打印机的方法 1、在计算机上连接好打印机&#xff0c;并安装好打印机的驱动&#xff0c;测试是否在本机上可以打印 &#xff1b; 2、在打印服务器上&#xff0c;共享该打印机&#xff1b; 3、保证打印服务器上的共享资源可以正常地访问&#xff1b; 4、在PC机运行“\\打印服…

LeetCode MySQL 1149. 文章浏览 II

文章目录1. 题目2. 解题1. 题目 Table: Views ------------------------ | Column Name | Type | ------------------------ | article_id | int | | author_id | int | | viewer_id | int | | view_date | date | ---------------------…

调试lua代码

lua没有调试器&#xff0c;但是它提供了很强的调试功能&#xff08;debug 库&#xff09;&#xff0c; 所以其实一些常用的调试功能都能很方便的使用&#xff0c;就像使用一个命令行调试器一样&#xff1a; 【例子程序】 -- debug.luagvar1 100 function foo()local var2 10f…

php增加mysql用户_mysql 增加用户

1. 新增用户 Sql代码 mysql insert into mysql. user (Host, User , Password ) values ( localhost , lionbule , password ( hello1234 )); mysqlflush privileges ; 或者 CREATEUSER usernamehost IDENTIFIEDBYpassword; 例子:CREATEUSERdoglo1. 新增用户Sql代码mysql>i…

2012总结--序

新时代Fans同学一直有 总结的习惯&#xff01;2012总结不同以往&#xff0c;这次总结是 划时代的。 世界末日已过&#xff0c;新的时代已经开始&#xff01; 2012年是至关重要的一年&#xff0c;不在于 IT技术上有多大提高&#xff0c;而是在于&#xff1a; 1. 离开校园&#x…

LeetCode MySQL 1164. 指定日期的产品价格 *

文章目录1. 题目2. 解题1. 题目 产品数据表: Products ------------------------ | Column Name | Type | ------------------------ | product_id | int | | new_price | int | | change_date | date | ------------------------ 这张表的主键是 (…

python tkinter 实例_Python tkinter模版代码实例

这篇文章主要介绍了Python tkinter模版代码实例,文中通过示例代码介绍的非常详细&#xff0c;对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下代码如下import tkinterimport timeimport threadingfrom tkinter import ttkevent threading.Event()once0def s…

判断浏览器版本

用jquery判断浏览器类型&#xff1a; 判断浏览器类型是IE浏览器还是火狐甚至是opera或者苹果浏览器safari&#xff0c;jquery 特效代码如下&#xff1a; $(function(){if($.browser.msie) {alert("这是一个IE浏览器");}else if($.browser.opera) {alert("这是一…

自己动手写cpu 光盘_自己动手写CPU配套源码

自己动手写CPU的源代码&#xff0c;一共15章&#xff0c;可以完整实现MIPS的指令文件&#xff1a;n459.com/file/25127180-476886294以下内容无关&#xff1a;-------------------------------------------分割线---------------------------------------------目录一、往期回顾…

LeetCode 1484. 克隆含随机指针的二叉树(哈希/递归)

文章目录1. 题目2. 解题2.1 原地算法2.2 哈希表1. 题目 给你一个二叉树&#xff0c;树中每个节点都含有一个附加的随机指针&#xff0c;该指针可以指向树中的任何节点或者指向空&#xff08;null&#xff09;。 请返回该树的 深拷贝 。 该树的输入/输出形式与普通二叉树相同…

QTreeWidget的基本操作

在主函数中增加&#xff1a; init();connect(ui->treeWidget,SIGNAL(itemChanged(QTreeWidgetItem*, int)),this,SLOT(treeItemChanged(QTreeWidgetItem*,int)));函数实现&#xff1a; void Widget::init() {ui->treeWidget->setHeaderLabels(QStringList()<<&q…

extjs2.0 ie8 下拉树_ExtJs下拉树的实现

直接上代码&#xff1a;Ext.ux.TreeCombo Ext.extend(Ext.form.ComboBox, {constructor : function(cfg) {cfg cfg || {};Ext.ux.TreeCombo.superclass.constructor.call(this, Ext.apply({maxHeight : 300,editable : false,mode : local,triggerAction : all,rootVisible :…

LeetCode 294. 翻转游戏 II(记忆化递归)

文章目录1. 题目2. 解题1. 题目 你和朋友玩一个叫做「翻转游戏」的游戏&#xff0c; 游戏规则&#xff1a;给定一个只有 和 - 的字符串。 你和朋友轮流将 连续 的两个 "" 反转成 "--"。 当一方无法进行有效的翻转时便意味着游戏结束&#xff0c;则另一方…

CMD 命令行查看端口被哪个程序占用,并根据PID值,找到相应的程序,关闭掉对应服务或进程!...

CMD 命令行查看端口被哪个程序占用&#xff0c;并根据PID值&#xff0c;找到相应的程序&#xff0c;关闭掉对应服务或进程&#xff01;不用任何第三方软件的情况下&#xff0c;打开CMD执行如下命令&#xff1a;1&#xff0c;netstat -ano 你可以查看到Local Address下面的80端口…