1、MySQL数据库当出现慢查询,是比较危险的,一旦有其他的DDL操作,可能会造成整个数据库的等待

可以分以下几种情况:

当表是MyiSAM表,对表有慢查询,不阻塞Select,对该表的其他DML,DDL操作都会被阻塞,比如出现Wating for table level lock,数据库中一定不能还存在MyiSAM表

当表是Innodb表,当表上有慢查询,不阻塞Select 和DML,其他的DDL操作都会被阻塞,比如出现waiting for table metadata lock

综上,当数据库中存在慢查询时,是比较危险的,当执行备份,create index ,alter  table , flush table 等操作时就会造成数据库的等待

解决办法:

1、对数据库中执行时间较长的Select进行监控,并及时报警

2、如果允许的话,写脚本,发现较长的select语句,直接kill,并记录日志中

-B, --batch         Don't use history file. Disable interactive behavior.

-s, --silent        Be more silent. Print results with a tab as separator,each row on new line.

-e, --execute=name  Execute command and quit. (Disables --force and historyfile.)

#如果数据库中当前有大量的select,可以过滤掉,只kill waiting的

cat killWaitSession.sh

#!/bin/bash

for i in `mysql -Bse 'show full processlist' | grep -i select |grep -i "Waiting | awk  '{print $1}'`

do

mysql -Bse "kill  $i"

done

show processlist的command的状态有很多,其中Query代表正在执行的命令

Query  : The thread is executing a statement.

cat killLongQuerySession.sh#!/bin/bash

executetime=(`mysql -Bse 'show  processlist'| grep 'Query'|awk  '{print $6 " " $1}'|sort -rn|head -1`)  #第6列是运行时间,第一列为session id

time=${executetime[0]}

id=${executetime[1]}

while :

do

maxtime=300

if [ $time  -gt  $maxtime  ] ; then

echo $time $id >> /tmp/killqueryid.log

mysql -Bse "kill  $id"

#else

#   echo $time $id

fi

sleep 10 #睡眠10s

done

按MySQL中执行时间反向排序mysqladmin processlist --verbose |grep 'Query'|awk -F "|" '{print $7 $2 $9}'|sort -rn -k1

参考:

https://blog.51cto.com/jim123/1836712

https://dev.mysql.com/doc/refman/5.7/en/show-processlist.html

https://dev.mysql.com/doc/refman/5.7/en/thread-commands.html

mysql executing_MySQL数据库出现慢查询的危害相关推荐

  1. MySQL数据库显现慢查询的危害

    MySQL数据库出现慢查询的危害: 1.MySQL数据库当出现慢查询,是比较危险的,一旦有其他的DDL操作,可能会造成整个数据库的等待   可以分以下几种情况:   当表是MyiSAM表,对表有慢查询 ...

  2. MySQL之数据库多表查询

    ------·今天距2020年41天·------ 这是ITester软件测试小栈第81次推文 SELECT 子查询 子查询( subquery)即嵌套查询 ,嵌套在其他查询中的查询. 查询粉丝数大于 ...

  3. 【MySQL】数据库的高级查询

    前言 上次我们讲了数据库的基本查询,这次继续接上来数据库的高级查询.高级查询是建立在基础查询的基础上面的,如果你还没有看过建议你先去学习数据库的基础查询. 传送门:MySQL数据库的基本查询 数据库的 ...

  4. 【MySQL】数据库的基本查询

    前言 上篇已经讲过数据库与表相关的一些相关的操作了,如果你对这部分依旧不太熟悉建议先去看看 传送门:[MySQL]逻辑库与数据表相关操作. 这篇就来说一下数据库中表的基本查询,看见是基本查询,就知道肯 ...

  5. 【MySQL】数据库 -- 多表查询

    多表查询:    在前面我总结的mysql表的查询都是对一张表进行查询,在实际开发中这远远不够.下面我们用一个简单的公司管理系统,有三张表emp,dept,salgrade 来演示如何进行多表查询. ...

  6. mysql主从 查询负载_MySQL集群:主从数据库配置 实现查询负载

    在做web应用系统中,如果数据库出现了性能瓶颈,而你又是使用的MySQL数据库,那么就可以考虑采用数据库集群的方式来实现查询负载了.因为一般来讲任何一个系统中数据库的查询操作比更新操作要多的多,因此通 ...

  7. mysql api查询例子_MySQL数据库:常用查询的例子Frommysqlapi

    本文主要向大家介绍了MySQL数据库的常用查询的例子Frommysqlapi,通过具体的实例让大家了解,希望对大家学习MySQL数据库有所帮助. 常用查询的例子 下面是一些学习如何用MySQL解决一些 ...

  8. 不同服务器数据库表连接查询修改,如何连接多个数据库,mysql中的服务器和查询两个表中的对方?...

    我期待从不同服务器连接两个不同的数据库.此外,我想运行一个查询,从两个数据库中获取数据到一个单一的结果.我正在使用mysql在PHP脚本中执行此操作.这里是如何很期待做[没有成功:)]如何连接多个数据 ...

  9. 关联查询mysql_《MySQL数据库》关联查询

    原标题:<MySQL数据库>关联查询 一.关联查询 1.概念 在查询数据时,所需要的数据不只在一张表中,可能在两张或多张表中.这个时候,需要同时操作这些表来查询数据,即关联查询. 关联查询 ...

最新文章

  1. jittor和pytorch生成网络对比之bicyclegan
  2. 【Flask】快速入门后台写接口【API】
  3. 跨入安全的殿堂--读《Web入侵安全测试与对策》感悟
  4. 中国人自己的框架——蚂蚁金服RPC框架结构分析
  5. java内存管理课程设计_Java内存管理分析
  6. css3的cursor
  7. 2016HUAS暑假集训训练题 F - 简单计算器
  8. 每个人都应该知道的Android Studio快捷方式
  9. DataFrame的行列操作
  10. python周报第十九周
  11. 各大市场应用上架整理
  12. 如何用活字格定制监狱管理系统
  13. Android 开机Logo、铃声、震动修改方案
  14. 费马小定理和欧拉定理
  15. 微信小程序实现简单下拉加载更多
  16. python读取eml文件并用正则匹配邮箱
  17. 计算新闻传播学临摹作业_数据抓取与数据清洗(西安交大国家艺术基金数据可视化培训第34天)
  18. Image Matting代码和算法效果总结
  19. 如何打开一个嵌在PC端应用的web窗口的控制台?
  20. 矩阵模板 51nod 算法马拉松分解问题

热门文章

  1. AEJoy —— 彻底搞懂 AE 各种 loop* 表达式【一】
  2. 爬虫,第十次实战之线程池(梨视频下载)
  3. 痴呆患者血脑屏障(Blood-Brain Barrier, BBB)功能测量
  4. 又发现一个免费网盘分享给大家
  5. 检索报告计算机类,计算机类的检索报告.docx
  6. 判定图中存在回路java_图示电路中二极管为理想二极管,请判断它是否导通,并求出 u 0 。 (7.0分)_学小易找答案...
  7. vue 日期选择器禁止点击今日之前的日期
  8. android苹果蓝牙版本,苹果蓝牙和安卓蓝牙能连吗
  9. k线符号图解大全_股市k线图各种符号意义?k线符号图解大全!
  10. Bootrom -> bootloader -> kernel -> init >android