MySQL数据库出现慢查询的危害

  

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

可以分以下几种情况:

当表是MyiSAM表,对表有慢查询,不阻塞选择、对该表的其他DML、DDL操作都会被阻塞,比如出现车站等表级锁,数据库中一定不能还存在MyiSAM表

当表是Innodb表,当表上有慢查询,不阻塞选择和DML,其他的DDL操作都会被阻塞,比如出现等待表元数据锁


综上,当数据库中存在慢查询时,是比较危险的,当执行备份,创建索引,alter 表,冲表等操作时就会造成数据库的等待


解决办法:

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

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




- b,——batch ,,,,不要# 39;t使用历史文件。禁用互动行为只,

- s,——silent ,,,更沉默。打印结果与一个标签分隔符,每一行> # !/bin/bash   for 小姐:“拷贝mysql  -Bse  & # 39; show  full  processlist& # 39;, |, grep 小姐;select  | grep 我;“Waiting  |, awk , & # 39; {print  1美元}& # 39;”   做   ,,,,,,,mysql  -Bse “kill ,我美元;   以前做



显示processlist的命令的状态有很多,其中查询代表正在执行的命令


<强> Query :线程执行一个语句。


猫killLongQuerySession。sh

,mysqladmin  processlist ——verbose  | grep  & # 39;查询# 39;| awk  -F “|”, & # 39; {print  7美元,2美元,9美元}& # 39;| 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数据库出现慢查询的危害