mysql长事务慢查询解决方案_MySQL : 如何监控和处理慢查询与长事务 ?

什么是慢查询、长事务 ?

慢查询 是指一条 SQL 的执行时间太长。比如在一个有100w条数据的表中,查询一条数据时未命中索引,从而通过全表扫描查询数据,这个查询会耗时很长。这就是一个 Long SQL 。类似,更新数据、删除数据也可能出现慢查询 。

长事务,是指事务开启后长时间未结束(commit或者rollback都没执行)。出现长事务的原因有很多,例如:

事务中有一个慢查询;

就是忘记结束事务了;

一个长事务中锁住了一些资源,导致其他需要该资源的事务也变成长事务。

很多情况下,慢查询和长事务,会对业务产生很大的负面影响:

业务响应太慢。

连接数暴涨。

如何发现慢查询 ?

方法1:

使用 show processlist 查看MySQL 线程情况,若有 Command 为 Query ,Time 很大的线程在列表中,那么这个线程就是在执行一个慢查询。Info 字段能看出来对应的 SQL 。

select * from information_schema.processlist 效果和 show processlist 相同。

示例:

方法2:

开启慢查询日志,实时解析日志内容。

略。

如何处理不可接受的慢查询?

如果慢查询在意料之中,可接受,那么不用处理。否则应该:

干掉此次的慢查询。使用 kill  ,id 是 show processlist 返回的 Id 。

优化SQL、索引等,防止再次出现慢查询。

如何发现长事务?

查询结果中,idle_time 过大的事务就是长事务。输出结果中, trx_mysql_thread_id  是对应的线程标识。

如何干掉长事务?

方案1

从 INFORMATION_SCHEMA.INNODB_TRX 得到的长事务信息中,有对应的线程标识, kill 掉即可。

方案2

设置较小的 wait_timeout 可以干掉部分长事务。

对于业务代码,使用的是非交互模式的连接,可以使用 wait_timeout 设置超时时间。相当于,若某个连接在 wait_timeout 这个时间范围内是空闲的,MySQL 服务器会自动关闭连接。

注意,数据库连接池参数要根据情况调整下。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/563650.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql身份验证失败_SMTP身份验证失败PAM-MySQL无法进行身份验证

我正在使用Postfix构建邮件服务器,并设置身份验证以使用Postfixadmin检查数据库设置.我可以通过Courier IMAP进行身份验证,因为它可以正确地验证哈希密码,但我怀疑我的SASL PAM-MySQL SMTP身份验证机制不能.我在/var/log/mail.log中收到这些错误:pam_unix(smtp:auth…

二级数据库access和mysql_二级数据库access和mysql

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里云数据库专家保驾护航,为用户…

mysql 从库可以写入吗_mysql主从库配置读写分离以及备份

1,什么是读写分离?其实就是将数据库分为了主从库,一个主库用于写数据,多个从库完成读数据的操作,主从库之间通过某种机制进行数据的同步,是一种常见的数据库架构。一个组从同步集群,通常被称为是…

用程序同步mysql数据库表_初次用Java写了个数据库表同步工具

介绍java 程序编写,真正跨平台。传入一定的参数,即可在相同或不同的数据库间进行表的同步,包括表结构的同步及数据的同步。作业由调度工具进行调度,比如 moia,本项目旨在提供一种数据库间表同步的通用工具。目前项目 d…

公认音质好的耳机品牌_什么品牌蓝牙耳机音质比较好?2020五款HIFI音质蓝牙耳机推荐...

对于蓝牙耳机,绝大多数人的需求都是听音乐,同时也作为一个穿戴的修饰品。基于这些需求,在我们选择蓝牙耳机的时候,就会选择一些外观比较好看的时尚音乐蓝牙耳机,既有时尚的外观,又有较好的音质。那么现在有…

mysql创建表时在extra输入数据_MySQL创建数据表(CREATE TABLE语句)

在创建数据库之后,接下来就要在数据库中创建数据表。所谓创建数据表,指的是在已经创建的数据库中建立新表。创建数据表的过程是规定数据列的属性的过程,同时也是实施数据完整性(包括实体完整性、引用完整性和域完整性)约束的过程。接下来我们…

mysql not in报错_mysql从5.7升级到8.0查询报错Expression #2 of SELECT list is not in GROUP BY...

报错信息:Expression #2 of SELECT list is not in GROUP BY clause and containsnonaggregated column ‘sss.month_id’ which is not functionallydependent on columns in GROUP BY clause; this is incompatible withsql_modeonly_full_group_by问题出现的原因…

mysql取消操作系统_Linux下的MySQL简单操作(服务启动与关闭、启动与关闭、查看版本)...

小弟今天记录一下在Linux系统下面的MySQL的简单使用,如下:服务启动与关闭 启动与关闭 查看版本环境Linux版本:centeros 6.6(下面演示),Ubuntu 12.04(参见文章末尾红色标注字体)MySQL版本:5.1.73查看MySQL服务的启动状态…

python文件下载速度 装饰器_python使用装饰器对文件进行读写操作'及遍历文件目录...

‘‘‘使用装饰器对文件进行读写操作‘‘‘#def check_permission(func):#‘‘‘演示嵌套函数定义及使用‘‘‘#def wrapper(*args,**kwargs):#‘‘‘*args:接收任意多个实参并存入元组中;**kwargs:接收关键字参数显示赋值并存入字典中‘‘‘#if kwargs.get(‘usern…

python日期转化成周数_[转]浅析使用python计算两个日期间隔天数﹑周数和指定若干天后对应的日期等...

>>> import datetime>>> help(datetime)http://docs.python.org/library/datetime.html查看2009年5月31日和2009年2月1日间隔多少天>>> d1datetime.date(2009,05,31)>>> d2datetime.date(2009,02,01)>>> d1-d2datetime.timedelta…

python读取csv画图datetime_python – CSV数据(Timestamp和事件)的时间表绘图:x-label常量...

(这个问题可以单独阅读,但是是续集:Timeseries from CSV data (Timestamp and events))我想通过使用python的熊猫模块(见下面的链接)的时间表表示,可视化CSV数据(从2个文件),如下所示.df1的样本数据:TIMESTAMP eventid0 2017-03-20 02:38:24 11 2017-03-…

建立通讯录python增删改查_Python编程实践之编写电话薄实现增删改查功能

初学Python编程实践,写一个小程序练习一下。主要功能就是增删改查的一些功能。主要用到的技术:字典的使用,pickle的使用,io文件操作。希望对大家学习Python编程实践有所帮助。代码如下:import pickle#studentinfo {ne…

python mysql connection close,Python数据库连接关闭

Using the code below leaves me with an open connection, how do I close?import pyodbcconn pyodbc.connect(DRIVERMySQL ODBC 5.1 driver;SERVERlocalhost;DATABASEspt;UIDwho;PWDtestest)csr conn.cursor()csr.close()del csr解决方案Connections have a close method …

python正向切片_使Python切片正常(正/正向+无无+无负索引+在边界内)

在Python中实现可以用标准Python语法进行切片的类(即负索引、单步执行等)时,有时可以将切片转换为“理智的、向前的切片”,以确定切片的元素。怎样才能以简洁/优雅的形式写出这样一个函数呢?在对于“理智的、向前的切片”,我指的是…

python笔记小白入门_Python 笔记:全网最详细最小白的Class类和实例详解

面向对象最重要的概念就是类(class)和实例(instance),类是抽象,而实例(Instance)则是一个个具体的对象面向对象三大特点:封装、继承和多态class Animal(object):def __init__(self, name):self.name name # 初始化类变量def Dog(self): # 创…

如何安装mysql5.7.2_CentOS 7.2 安装MySQL 5.7

CentOS 7之后的版本yum的默认源中使用MariaDB替代原先MySQL,因此安装方式较为以往有一些改变:下载mysql的源wget http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm安装yum库yum localinstall -y mysql57-community-release-el7-7.n…

java父类调用子类方法_Java 中父类怎么调用子类的方法?

父类能调用子类的方法吗?答:能。怎么做?● 把子类传递到父类的有参构造中,然后调用。● 使用反射的方式调用,你使用了反射还有谁不能调用的?!● 父类调用子类的静态方法。案例展示:p…

java entity转dto_java 使用反射在dto和entity 实体类之间进行转换

public class Utils {/*** 将dto和entity之间的属性互相转换,dto中属性一般为String等基本类型,* 但是entity中可能有复合主键等复杂类型,需要注意同名问题* param src* param target*/public static Object populate(Object src, Object target) {Method[] srcMethods src.ge…

java 字符串转dom对象_xml类型的字符串转换为Dom对象

我写这篇博客的目的是因为我在这一点转换方面耽搁了快2天时间,真是惭愧呀,dom4j.jar包有自带方法DocumentHelper.parseText(String text)用于将字符串类型的xml转换为Dom对象,从而进行下面的解析,还有一个关键是:产生字…

java nlpir_中科院NLPIR中文分词java版

摘要:为解决中文搜索的问题,最开始使用 版 SCWS ,但是处理人名和地名时,会出现截断人名地名出现错误。开始使用 NLPIR 分词,在分词准确性上效果要比 SCWS 好。本文介绍如何在 系统下 JAVA ,生成可以执行的 …