首页 > 数据库 >kill sql慢查询会话

kill sql慢查询会话

时间:2023-06-05 17:25:28浏览次数:35  
标签:MYSQL 查询 会话 session kill sql TIME

需求描述

1 、查找超过300s的慢查询会话。

2、kill掉的历史会话保留在文件中

解决方案

#!/bin/bash
# 脚本参数定义
MYSQL_USER="root"
MYSQL_PASSWORD="######"
MYSQL_HOST="192.168.209.x"
MYSQL_PORT="3307"
SLOW_QUERY_TIME=3
SLEEP_TIME=10
OUTPUT_FILE="kill_select_slow_slave.txt"

# 无限循环,每隔 10 秒查询一次
while true; do
# 查询执行时间超过 300 秒的 SELECT 会话
slow_queries=$(mysql -u${MYSQL_USER} -p${MYSQL_PASSWORD} -h${MYSQL_HOST} -P${MYSQL_PORT} -N -e "SELECT b.ID, b.USER, b.HOST, b.DB, b.COMMAND, TIME_TO_SEC(b.TIME), b.INFO FROM information_schema.PROCESSLIST AS b JOIN information_schema.INNODB_TRX AS a ON a.TRX_MYSQL_THREAD_ID = b.ID WHERE b.COMMAND = 'Query' AND b.INFO LIKE 'SELECT%' AND TIME_TO_SEC(b.TIME) > ${SLOW_QUERY_TIME};")

# 遍历查询到的慢查询会话并 kill 掉
while IFS= read -r line; do
if [ ! -z "$line" ]; then
session_id=$(echo $line | awk '{print $1}')
slow_query=$(echo $line | cut -d ' ' -f 7-)

# kill 慢查询会话
mysql -u${MYSQL_USER} -p${MYSQL_PASSWORD} -h${MYSQL_HOST} -P${MYSQL_PORT} -e "KILL $session_id;"

# 将被 kill 的慢 SQL 及会话记录到文件中
echo "$(date) - Killed session: $session_id - SQL: $slow_query" >> "$OUTPUT_FILE"
fi
done <<< "$slow_queries"

# 等待 10 秒后再次查询
sleep $SLEEP_TIME
done

标签:MYSQL,查询,会话,session,kill,sql,TIME
From: https://www.cnblogs.com/lkj371/p/17458433.html

相关文章

  • pymysql,pymongo链接实例
    pymysqlconn=pymysql.connect(host=dbhost,#数据库地址port=3306,#数据库端口号user='testpymysql',#数据库账号password='afk!cTRnDnVq*bvZ'#数据库密码)cursor=conn.cursor(cursor=pymysql.cursors.DictCursor)#字典形式sql=......
  • SQL创建外键
    建立外键关系:先建主表再见从表;主表:createtablezhu(codeintPrimarykey,namevarchar(20));从表:createtablecong(codeintPrimarykey,namevarchar(20),zhuint,foreignkey【代表外键】(zhu)references【引用】zhu(code)[建立外键关系])样......
  • 最新Mysql与Navicat下载安装教程
    MySQL安装步骤1、下载MySQL2、安装MySQL3、MySQL的基本使用1、下载MySQL我们先进入MySQL官网,下载MySQL的官方安装包。(网址:http://www.mysql.com)官网首页:点击downloads点击“MySQLCommunity(GPL)Downloads»”点击“MySQLInstallerforWindows”。(我们这里讲的是windows......
  • SqlSugar列转行扩展方法
    参考C#行列互转List、DataTable和匿名对象行转列SQLServer列转行的实现MemberExpression类MemberInfo类代码点击查看代码-扩展方法publicstaticclassUnPivotQueryMethod{publicstaticList<TRow>ToUnPivotList<T,TRow,TCol,TColName,TData......
  • mysql substring_index
    1.substring_index函数的语法及其用法(1)语法:substring_index(string,sep,num)即substring_index(字符串,分隔符,序号)参数说明string:用于截取目标字符串的字符串。可为字段,表达式等。sep:分隔符,string存在且用于分割的字符,比如“,”、“.”等。num:序号,为非0整数......
  • #yyds干货盘点#Mybatis如何执行SQL语句
    mybatis操作数据库的过程//第一步:读取mybatis-config.xml配置文件InputStreaminputStream=Resources.getResourceAsStream("mybatis-config.xml");//第二步:构建SqlSessionFactory(框架初始化)SqlSessionFactorysqlSessionFactory=newSqlSessionFactoryBuilder().buli......
  • Mysql:事务
    事务特性事务的特性:acid。原子性(重要)事务内的一组操作为原子操作,要么全部成功,要么全部失败。在实际业务如转账,就必须保证一方数目多了一方少了,数目平衡。一致性(面试常问)事务成功或失败的结果必须符合业务逻辑。还是以转账为例,A转给B100块,成功就A少100,B多100,失败就双方金额该......
  • pymysql.err.DataError: (1366, “Incorrect string value: ‘\\xF0\\x9F\\x92
    原因是字符串中有emoji数据。原因:字符串中有emoji字符,数据库是utf8无法识别解决方法:安装emoji库pipinstallemoji处理字符串:importemojis=emoji.demojize('......
  • 汇总低效的SQL语句
    背景SQL专家云像“摄像头”一样,对环境、参数配置、服务器性能指标、活动会话、慢语句、磁盘空间、数据库文件、索引、作业、日志等几十个运行指标进行不同频率的实时采集,保存到SQL专家云自己的数据库中。因此可以随时对任何一个时间段内的SQL语句进行汇总,找到低效的SQL语句。慢......
  • 递归SQL的写法
     1.递归查询某一节点的无限级子集(不含自身)。#功能:递归查询某一节点的无限级子集。#参数说明:#表名:organization#父ID字段:parent_id#主键ID字段:id#顶层ID值:1604SELECT *FROM (SELECT*FROMorganization)A, (SELECT@pv:='1604')BWHERE find_in_set(......