一条更新语句,导致数据库卡死,但从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)相关推荐

  1. sql入侵 mysql日志_服务器入侵日志分析(一)——mysql日志位置确定

    安全应急响应工作中,一项重要任务就是要对mysql数据库的日志进行分析.我们通过对mysql日志记录的审计,发现攻击行为,进而追溯攻击源.在工作中遇见的各种服务器上,由于mysql安装方式不同,其日志 ...

  2. 东财mysql作业_学习平台-15秋东财《MySQL数据库系统及应用》在线作业二(随机)-成人高等教育_成人本科教育报名_远程网络教育学院-江苏学历网报名服务中心...

    一.单选题(共15道试题,共60分.)V1.在mysql中一个新用户默认就有查看的权限 A.正确 B.错误 满分:4分 2.下列哪个命令用来修改用户名 A.setusername B.nameuser ...

  3. Ubuntu MySQL性能_入门系列之在Ubuntu上使用MySQL设置远程数据库优化站点性能

    介绍 随着您的应用程序或网站的增长,您可能已经超出了当前的服务器设置.如果您在同一台计算机上托管Web服务器和数据库后端,最好将这两个功能分开,以便每个功能可以在自己的硬件上运行,并分担响应访问者请求 ...

  4. mysql有没有模式,关于sql:没有数据的MySql导出模式

    我正在使用带有Java程序的MySql数据库,现在我想将程序交给其他人. 如何在没有数据的情况下导出MySql数据库结构,只是结构? 您可以使用mysqldump命令使用--no-data选项 mys ...

  5. mysql pdo 获取最后一条sql_一条sql语句的执行过程-mysql

    平时我们使用数据库,看到的通常都是一个整体.比如,你有个最简单的表,表里只有一个 ID 字段,在执行下面这个查询语句时: mysql> select * from T where ID=10: ...

  6. 安装mysql驱动报错_java.sql.SQLException: org.gjt.mm.mysql.Driver 报错【解决办法】

    今天爱分享给大家带来java.sql.SQLException: org.gjt.mm.mysql.Driver 报错[解决办法],希望能够帮助到大家. spring boot mysql 中启动报错 ...

  7. linux开启mysql窗口_通过window(Navicat)访问linux中的mysql数据库

    Centos安装Mysql数据库 查看我们的操作系统上是否已经安装了mysql数据库 [root@centos~]# rpm -qa | grep mysql//这个命令就会查看该操作系统上是否已经安 ...

  8. php面试题 mysql 主从_必看!PHP常见面试题——MySQL篇

    21.简要说一下数据库范式? 第一范式(1NF):强调的是列的原子性,即数据库表的每一列都是不可分割的原子数据项. 第二范式(2NF):要求实体的属性完全依赖于主关键字.所谓完全依赖是指不能存在仅依赖 ...

  9. mysql中括号_【Java程序猿必备系列】MySQL知识点总结

    点击 隔壁王小猿 关注公众号获取更多精彩JAVA文章 1.数据库的组成 2.MySQL数据类型 MySQL支持多种类型,大致可以分为三类:数值.日期/时间和字符串(字符)类型. 2.1 数值类型 My ...

最新文章

  1. python pip国内镜像
  2. 巧用linux版powershell,管理linux下的docker
  3. 天津知青网6周年网庆-京剧-智取威虎山片段
  4. 决策树1 -- ID3_C4.5算法
  5. 从ARM裸机看驱动之按键中断方式控制LED(二)
  6. Linux嵌入式学习-ds18b20驱动
  7. PowerPoint教程资源专题资源免费下载整理合集收藏
  8. matlab图像去毛刺_MATLAB数字图像处理
  9. 奇葩报错之返回值为 -1073741515 (0xc0000135) ‘未找到依赖 dll‘
  10. JS函数式编程——来源freecodecamp
  11. 万物智能——百度世界2020”大会
  12. matlab图片投稿,投稿时图片DPI的设置及相关心得
  13. SocialBook帮你扫除网红营销乱象
  14. trainlm算法c语言,粒子群优化的BP神经网络模型对C、Mn两种元素收得率的预测
  15. 15道HTML5基础面试题(附答案)
  16. dsp调音一次多少钱_dsp价格一般多少
  17. python模拟商家抹零行为_2019-04-10
  18. 服务器监控cacti
  19. C++实现otsu算法
  20. Cadence QSPI调试

热门文章

  1. 简约不简单的单例模式
  2. 老将回归,英特尔的复兴之路
  3. 用一首歌时间将 React 应用 Docker 化,成为前端 Star!
  4. 10 行代码玩转弹性调度的小把戏
  5. 港科大郑光廷院士问诊未来,揭露 AI 最新应用与实践
  6. C 语言漏洞最严重,PHP 最易受攻击,程序员该怎么写代码?
  7. 玩转 SpringBoot2.x 之缓存对象 | 原力计划
  8. DevOps 火爆,要学这么多技术!
  9. 80% 的 Android 应用正使用加密流量!
  10. 阿里云推出首个数据库云上跑分平台,背后是什么逻辑?