广告
返回顶部
首页 > 资讯 > 数据库 >MySQL数据库出现慢查询的危害
  • 723
分享到

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

2024-04-02 19:04:59 723人浏览 安东尼
摘要

1、Mysql数据库当出现慢查询,是比较危险的,一旦有其他的DDL操作,可能会造成整个数据库的等待可以分以下几种情况:当表是MyiSAM表,对表有慢查询,不阻塞Select,对该表的其他DML,DDL操作都

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


您可能感兴趣的文档:

--结束END--

本文标题: MySQL数据库出现慢查询的危害

本文链接: https://www.lsjlt.com/news/45021.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL数据库出现慢查询的危害
    1、MySQL数据库当出现慢查询,是比较危险的,一旦有其他的DDL操作,可能会造成整个数据库的等待可以分以下几种情况:当表是MyiSAM表,对表有慢查询,不阻塞Select,对该表的其他DML,DDL操作都...
    99+
    2022-10-18
  • MySQL中的慢查询是什么及有哪些危害
    本文小编为大家详细介绍“MySQL中的慢查询是什么及有哪些危害”,内容详细,步骤清晰,细节处理妥当,希望这篇“MySQL中的慢查询是什么及有哪些危害”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、什么是慢查询什...
    99+
    2023-07-04
  • 怎么解决MySQL数据库出现慢查询问题
    这篇文章主要讲解了“怎么解决MySQL数据库出现慢查询问题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么解决MySQL数据库出现慢查询问题”吧!1、My...
    99+
    2022-10-18
  • MySQL数据库——MySQL慢查询日志(Slow Query Log)
    慢查询日志用来记录在 MySQL 中执行时间超过指定时间的查询语句。通过慢查询日志,可以查找出哪些查询语句的执行效率低,以便进行优化。 通俗的说,MySQL 慢查询日志是排查问题的 SQL 语句,以及检查当前 MySQL 性能的一个重要功能...
    99+
    2023-08-31
    mysql 数据库 sql
  • 【MySQL】数据库慢查询日志分析--Lepus
    [root@wallet04 ~]# wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm [root@wa...
    99+
    2022-10-18
  • 如何在mysql数据库中开启慢查询
    如何在mysql数据库中开启慢查询?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1、开启慢查询1> 查看慢查询是否开启s...
    99+
    2022-10-18
  • Mysql数据库慢查询常用优化方式
    目录慢查询日志概念一、数据库中设置SQL慢查询1、mysql慢查询相关配置参数介绍2、实现配置步骤二、分析慢查询日志三、常见的慢查询优化1、索引没起作用的情况2、优化数据库结构3、分解关联查询4、优化LIMIT分页四、常...
    99+
    2023-05-05
    mysql如何优化慢查询 如何优化慢查询sql 优化mysql查询速度
  • mysql数据库多表关联查询的慢SQL优化
    工作中我们经常用到多个left join去关联其他表查询结果,但是随着数据量的增加,一个表的数据达到百万级别后,这种普通的left join查询将非常的耗时。 举个例子:     现在porder表有 1000W数据,其他关联的表数据都...
    99+
    2017-02-16
    mysql数据库多表关联查询的慢SQL优化
  • mysql如何查询数据出现的次数
    这篇文章主要介绍“mysql如何查询数据出现的次数”,在日常操作中,相信很多人在mysql如何查询数据出现的次数问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”mysql如何查...
    99+
    2022-10-19
  • php怎么从mysql数据库中读出查询的数据
    本文操作环境:windows7系统、PHP7.1版、DELL G3电脑php怎么从mysql数据库中读出查询的数据?PHP+MySql实现后台数据的读取:我们使用的是PHP 的php_mysqli扩展 首先了解一些基础的用法 1.连接数据...
    99+
    2017-10-05
    php
  • MYSQL双表查询时出现数据重复
    今天在做双表查询的时候出现了同一条数据出现2次的问题(重复数据)。 前景提要:   A表和B表   A表中有A.sourseId。B表中也有B.sourseId。                           A表中有A.accoun...
    99+
    2015-12-26
    MYSQL双表查询时出现数据重复 数据库入门 数据库基础教程 数据库 mysql
  • MySQL数据库查询中怎么实现多表查询
    今天小编给大家分享一下MySQL数据库查询中怎么实现多表查询的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、多表查询多表查...
    99+
    2023-06-29
  • 输出WordPress数据库查询的具体内容 减少数据库查询次数
    最近做一个wordpress的企业模板,关注了一下查询次数这个东西! 在 footer.php 里添加了如下代码,以显示wordpress查询数据库次数及查询耗时: <php echo get_num_querie...
    99+
    2022-06-12
    数据库查询
  • 如何查询mysql的数据库
    本篇内容介绍了“如何查询mysql的数据库”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2022-10-19
  • MySQL数据库的查询操作
    目录 一、数据查询语句的基本格式 二、单表查询 查询表中的若干列 查询指定列 查询经过计算的值 选择表中的若干元组 去重 条件查询 order by 子句 聚集函数 group by 子句 三、连接查询 等值与非等值连接查询 外连接 多表连...
    99+
    2023-09-06
    数据库 sql mysql
  • Vue实现模糊查询-Mysql数据库数据
    目录1.需求2.实现3.结果1.需求 输入框中输入数据,根据输入的结果模糊搜索数据库对应内容,实现模糊查询。 2.实现 输入框使用v-model双向绑定查询数据keyWord。 &...
    99+
    2022-11-12
  • 为什么Mysql 数据库表中有索引还是查询慢
    目录前言:1、字段类型不匹配导致的索引失效2、被索引字段使用了表达式计算3、被索引字段使用了内置函数4、like 使用了 %X 模糊匹配5、索引字段不是联合索引字段的最左字段6、or...
    99+
    2022-11-13
  • MySQL实现查询数据库表记录数
    前言: mysql统计一个数据库里所有表的数据量,最近在做统计想查找一个数据库里基本所有的表数据量,数据量少的通过select count再加起来也是可以的,不过表的数据有点多,不可能一个一个地查。记得在Nav...
    99+
    2022-09-29
  • MySQL数据库:子查询的应用
    子查询 子查询是一种常用计算机语言SELECT-SQL语言中嵌套查询下层的程序模块。当一个查询是另一个查询的条件时,称之为子查询。 # 子查询的用法 # 在字段 select (select cName from courses w...
    99+
    2018-04-26
    MySQL数据库:子查询的应用
  • MySQL数据库的SQL查询优化
    今天就跟大家聊聊有关MySQL数据库的SQL查询优化,相信大部分人都还不知道这个技巧,因此给大家总结了以下内容,希望大家阅读完后可以有所收获。1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 wher&...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作