mysql 卡住_一次sql卡住的解决过程(mysql)
一条更新语句,导致数据库卡死,但从OS层面看没有数据库负载
update wlflow.`crm_fm_result_info` set result_status = '已取消',end_date = '2016-07-31 23:59:59',bak2 = '20160805数据对比联通侧无订购'
WHERE `prod_rowid` = '144' AND `result_status` = '成功'
AND `create_date` > '2016-05-08 15:30' AND `create_date` < '2016-08-01'
AND `phone` NOT IN (
SELECT phone FROM report.`ltspfb_20160805`)
进程列表中卡住的sql已经执行了9万多(96309)秒了
mysql> show full processlist;
+-----------+--------------+---------------------+--------+---------+-------+-------+-----------------------+-----------+---------------+
| Id | User | Host | db | Command | Time | State | Info | Rows_sent | Rows_examined |
+-----------+--------------+---------------------+--------+---------+-------+-------+-----------------------+-----------+---------------+
| 104716330 | ssx_dbmanage | 10.25.251.101:47720 | wlflow | Sleep | 21082 | | NULL | 1 | 0 |
| 104723084 | ssx_dbmanage | 10.25.251.101:48246 | wlflow | Sleep | 9832 | | NULL | 1 | 0 |
| 104724995 | ssx_dbmanage | 10.25.251.101:55815 | wlflow | Sleep | 972 | | NULL | 1 | 0 |
| 104725661 | report_sc | 10.25.20.16:64246 | report | Query | 96309| | update wlflow.`crm_fm_result_info` set result_status = '已取消',end_date = '2016-07-31 23:59:59',bak2 = '20160805数据对比联通侧无订购'
WHERE `prod_rowid` = '144' AND `result_status` = '成功'
AND `create_date` > '2016-05-08 15:30' AND `create_date` < '2016-08-01'
AND `phone` NOT IN (
SELECT phone FROM report.`ltspfb_20160805`) | 1 | 0 |
1千2百万条数据
mysql> show table status like 'crm_fm_result_info';
+--------------------+--------+---------+------------+----------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+-----------------+----------+----------------+---------+
| Name | Engine | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time | Update_time | Check_time | Collation | Checksum | Create_options | Comment |
+--------------------+--------+---------+------------+----------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+-----------------+----------+----------------+---------+
| crm_fm_result_info | InnoDB | 10 | Compact |11676615| 219 | 2564784128 | 0 | 3132653568 | 7340032 | 12082756 | 2016-06-17 17:16:56 | NULL | NULL | utf8_general_ci | NULL | | |
+--------------------+--------+---------+------------+----------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+-----------------+----------+----------------+---------+
1 row in set
子表:1百5十4万条数据
mysql> show table status like 'ltspfb_20160805';
+-----------------+--------+---------+------------+---------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+-----------------+----------+----------------+---------+
| Name | Engine | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time | Update_time | Check_time | Collation | Checksum | Create_options | Comment |
+-----------------+--------+---------+------------+---------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+-----------------+----------+----------------+---------+
| ltspfb_20160805 | InnoDB | 10 | Compact |1543803| 40 | 62488576 | 0 | 0 | 4194304 | NULL | 2016-08-05 15:20:02 | NULL | NULL | utf8_general_ci | NULL | | |
+-----------------+--------+---------+------------+---------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+-----------------+----------+----------------+---------+
1 row in set
mysql> SHOW INDEX FROM report.ltspfb_20160805;
+-----------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
+-----------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| ltspfb_20160805 | 1 | phone | 1 | phone | A | 1543803 | NULL | NULL | YES | BTREE | | |
+-----------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
1 row in set
mysql> show index from wlflow.crm_fm_result_info;
+--------------------+------------+---------------+--------------+---------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
+--------------------+------------+---------------+--------------+---------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| crm_fm_result_info | 0 | PRIMARY | 1 | rowid | A | 10535978 | NULL | NULL | | BTREE | | |
| crm_fm_result_info | 1 | phone | 1 | phone | A | 10535978 | NULL | NULL | | BTREE | | |
| crm_fm_result_info | 1 | result_status | 1 | result_status | A | 3222 | NULL | NULL | YES | BTREE | | |
| crm_fm_result_info | 1 | end_date | 1 | end_date | A | 2633994 | NULL | NULL | YES | BTREE | | |
| crm_fm_result_info | 1 | bak5 | 1 | bak5 | A | 1505139 | 255 | NULL | YES | BTREE | | |
| crm_fm_result_info | 1 | start_date | 1 | start_date | A | 10535978 | NULL | NULL | | BTREE | | |
| crm_fm_result_info | 1 | phone_2 | 1 | phone | A | 10535978 | NULL | NULL | | BTREE | | |
| crm_fm_result_info | 1 | phone_2 | 2 | prod_rowid | A | 10535978 | NULL | NULL | | BTREE | | |
| crm_fm_result_info | 1 | phone_2 | 3 | result_status | A | 10535978 | NULL | NULL | YES | BTREE | | |
| crm_fm_result_info | 1 | prod_rowid_2 | 1 | prod_rowid | A | 26208 | NULL | NULL | | BTREE | | |
| crm_fm_result_info | 1 | prod_rowid_2 | 2 | cust_id | A | 10535978 | NULL | NULL | | BTREE | | |
| crm_fm_result_info | 1 | prod_rowid_2 | 3 | end_date | A | 10535978 | NULL | NULL | YES | BTREE | | |
| crm_fm_result_info | 1 | prod_rowid | 1 | prod_rowid | A | 16566 | NULL | NULL | | BTREE | | |
| crm_fm_result_info | 1 | prod_rowid | 2 | create_date | A | 10535978 | NULL | NULL | | BTREE | | |
| crm_fm_result_info | 1 | prod_rowid | 3 | result_status | A | 10535978 | NULL | NULL | YES | BTREE | | |
| crm_fm_result_info | 1 | phone_3 | 1 | phone | A | 10535978 | NULL | NULL | | BTREE | | |
| crm_fm_result_info | 1 | phone_3 | 2 | prod_rowid | A | 10535978 | NULL | NULL | | BTREE | | |
| crm_fm_result_info | 1 | phone_3 | 3 | result_status | A | 10535978 | NULL | NULL | YES | BTREE | | |
| crm_fm_result_info | 1 | phone_3 | 4 | create_date | A | 10535978 | NULL | NULL | | BTREE | | |
+--------------------+------------+---------------+--------------+---------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
19 rows in set
改成select看解析计划
mysql> explain select count(1)
from wlflow.`crm_fm_result_info` a
WHERE `prod_rowid` = '144' AND `result_status` = '成功'
AND `create_date` > '2016-05-08 15:30' AND `create_date` < '2016-08-01'
AND phone not in (
SELECT phone FROM report.`ltspfb_20160805` b ) ;
+----+-------------+-------+-------+---------------------------------------+---------------+---------+-------+---------+------------------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+-------+---------------------------------------+---------------+---------+-------+---------+------------------------------------+
| 1 | PRIMARY | a | ref | result_status,prod_rowid_2,prod_rowid | result_status | 303 | const | 5835987 | Using index condition; Using where |
| 2 | SUBQUERY | b | index | phone | phone | 303 | NULL | 1543803 | Using index |
+----+-------------+-------+-------+---------------------------------------+---------------+---------+-------+---------+------------------------------------+
2 rows in set
改成关联查询:(要求B表中phone唯一)
mysql> explain select count(1)
from wlflow.`crm_fm_result_info` a,report.`ltspfb_20160805` b
WHERE a.`phone` = b.`phone`
and `prod_rowid` = '144' AND `result_status` = '成功'
AND `create_date` > '2016-05-08 15:30' AND `create_date` < '2016-08-01';
+----+-------------+-------+-------+-----------------------------------------------------+-------+---------+----------------+---------+--------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+-------+-----------------------------------------------------+-------+---------+----------------+---------+--------------------------+
| 1 | SIMPLE | b | index | phone | phone | 303 | NULL | 1543803 | Using where; Using index |
| 1 | SIMPLE | a | ref | phone,result_status,phone_2,prod_rowid_2,prod_rowid | phone | 302 | report.b.phone | 1 | Using where |
+----+-------------+-------+-------+-----------------------------------------------------+-------+---------+----------------+---------+--------------------------+
2 rows in set
mysql 建索引 是锁表的,可以用一下shell命令
改造后台的SQL如下:
update wlflow.`crm_fm_result_info` a,report.`ltspfb_20160805` b
set a.result_status = '已取消',
a.end_date = '2016-07-31 23:59:59',
a.bak2 = '20160805数据对比联通侧无订购'
WHERE a.`phone` = b.`phone`
and `prod_rowid` = '144' AND `result_status` = '成功'
AND `create_date` > '2016-05-08 15:30'
AND `create_date` < '2016-08-01';
mysql 卡住_一次sql卡住的解决过程(mysql)相关推荐
- sql入侵 mysql日志_服务器入侵日志分析(一)——mysql日志位置确定
安全应急响应工作中,一项重要任务就是要对mysql数据库的日志进行分析.我们通过对mysql日志记录的审计,发现攻击行为,进而追溯攻击源.在工作中遇见的各种服务器上,由于mysql安装方式不同,其日志 ...
- 东财mysql作业_学习平台-15秋东财《MySQL数据库系统及应用》在线作业二(随机)-成人高等教育_成人本科教育报名_远程网络教育学院-江苏学历网报名服务中心...
一.单选题(共15道试题,共60分.)V1.在mysql中一个新用户默认就有查看的权限 A.正确 B.错误 满分:4分 2.下列哪个命令用来修改用户名 A.setusername B.nameuser ...
- Ubuntu MySQL性能_入门系列之在Ubuntu上使用MySQL设置远程数据库优化站点性能
介绍 随着您的应用程序或网站的增长,您可能已经超出了当前的服务器设置.如果您在同一台计算机上托管Web服务器和数据库后端,最好将这两个功能分开,以便每个功能可以在自己的硬件上运行,并分担响应访问者请求 ...
- mysql有没有模式,关于sql:没有数据的MySql导出模式
我正在使用带有Java程序的MySql数据库,现在我想将程序交给其他人. 如何在没有数据的情况下导出MySql数据库结构,只是结构? 您可以使用mysqldump命令使用--no-data选项 mys ...
- mysql pdo 获取最后一条sql_一条sql语句的执行过程-mysql
平时我们使用数据库,看到的通常都是一个整体.比如,你有个最简单的表,表里只有一个 ID 字段,在执行下面这个查询语句时: mysql> select * from T where ID=10: ...
- 安装mysql驱动报错_java.sql.SQLException: org.gjt.mm.mysql.Driver 报错【解决办法】
今天爱分享给大家带来java.sql.SQLException: org.gjt.mm.mysql.Driver 报错[解决办法],希望能够帮助到大家. spring boot mysql 中启动报错 ...
- linux开启mysql窗口_通过window(Navicat)访问linux中的mysql数据库
Centos安装Mysql数据库 查看我们的操作系统上是否已经安装了mysql数据库 [root@centos~]# rpm -qa | grep mysql//这个命令就会查看该操作系统上是否已经安 ...
- php面试题 mysql 主从_必看!PHP常见面试题——MySQL篇
21.简要说一下数据库范式? 第一范式(1NF):强调的是列的原子性,即数据库表的每一列都是不可分割的原子数据项. 第二范式(2NF):要求实体的属性完全依赖于主关键字.所谓完全依赖是指不能存在仅依赖 ...
- mysql中括号_【Java程序猿必备系列】MySQL知识点总结
点击 隔壁王小猿 关注公众号获取更多精彩JAVA文章 1.数据库的组成 2.MySQL数据类型 MySQL支持多种类型,大致可以分为三类:数值.日期/时间和字符串(字符)类型. 2.1 数值类型 My ...
最新文章
- python pip国内镜像
- 巧用linux版powershell,管理linux下的docker
- 天津知青网6周年网庆-京剧-智取威虎山片段
- 决策树1 -- ID3_C4.5算法
- 从ARM裸机看驱动之按键中断方式控制LED(二)
- Linux嵌入式学习-ds18b20驱动
- PowerPoint教程资源专题资源免费下载整理合集收藏
- matlab图像去毛刺_MATLAB数字图像处理
- 奇葩报错之返回值为 -1073741515 (0xc0000135) ‘未找到依赖 dll‘
- JS函数式编程——来源freecodecamp
- 万物智能——百度世界2020”大会
- matlab图片投稿,投稿时图片DPI的设置及相关心得
- SocialBook帮你扫除网红营销乱象
- trainlm算法c语言,粒子群优化的BP神经网络模型对C、Mn两种元素收得率的预测
- 15道HTML5基础面试题(附答案)
- dsp调音一次多少钱_dsp价格一般多少
- python模拟商家抹零行为_2019-04-10
- 服务器监控cacti
- C++实现otsu算法
- Cadence QSPI调试