MySQL性能优化-数据库死锁监控

by:授客 QQ1033553122

1)表锁定

通过检查 table_locks_waited 和 table_locks_immediate 状态变量来分析表锁定。

SHOW  STATUS  LIKE  'table%';

说明:

Table_locks_immediate:能够立即获得表级锁的锁请求次数

Table_locks_waited:不能立即获取表级锁而需要等待的锁请求次数

分析:

如果table_locks_waited值较高,且存在性能问题,则说明存在着较严重的表级锁争用情况。这时,需要对应用做进一步的检查,来确定问题所在,应首先优化查询,然后拆分表或复制表。

2)行级锁

通过检查 Innodb_row_lock状态变量来分析行锁的争用情况

SHOW STATUS LIKE 'Innodb_row_lock%';

说明:

Innodb_row_lock_current_waits:当前锁等待的数量

Innodb_row_lock_time:自系统启动到现在,锁定的总时间,单位:毫秒 ms。

Innodb_row_lock_time_avg:平均锁定的时间,单位:毫秒 ms。

Innodb_row_lock_time_max:最大锁定时间,单位:毫秒 ms。

Innodb_row_lock_waits:自系统启动到现在,锁等待次数,即锁定的总次数。

分析:

针对如果InnoDB_row_lock_waits和InnoDB_row_lock_time_avg的值比较高,说明可能存在锁争用的情况,针对 Innodb 类型的表,可以通过设置InnoDB Monitors来进一步观察发生锁争用的表、数据行等,并分析锁争用的原因,如下:

注:可通过语句SHOW CREATE TABLE table_name;查看表table_name使用的引擎(查询输出结果中找到ENGINE=xxxx,这里xxxx即为使用的引擎);

1、先设置InnoDB Monitor

CREATE  TABLE  innodb_monitor(a  INT)  ENGINE=INNODB;

2.查看

SHOW ENGINE INNODB STATUS;

说明:

1.输出结果包含了详细的当前锁等待的信息,包括表名、锁类型、锁定记录的情况等等。打开监视器以后,默认情况下每 15 秒会向日志中记录监控的内容,如果长时间打开会导致.err 文件变得非常的巨大,所以我们在确认问题原因之后,要记得删除监控表(DROP  TABLE innodb_monitor;)以关闭监视器。

2.输出结果为基于一段时间的数据采样,得出的每秒平均值,这里的时间取自系统启动到当前时间的时间间隔或者上次输出到当前时间的时间间隔

3.找到TRANSACTIONS部分的内容,可以查看事务死锁争用的相关情况

MySQL 性能优化-数据库死锁监控的更多相关文章

  1. MySQL 性能优化--优化数据库结构之优化数据类型

    MySQL性能优化--优化数据库结构之优化数据类型   By:授客  QQ:1033553122   优化数字数据(Numeric Data) l   对于唯一ID或其它可用字符串或数字表示的值,选择 ...

  2. MySQL 性能优化--优化数据库结构之优化数据大小

    MySQL性能优化--优化数据库结构之优化数据大小   By:授客  QQ:1033553122 尽量减少表占用的磁盘空间.通常,执行查询期间处理表数据时,小表占用更少的内存. 表列 l   尽可能使 ...

  3. Java面试准备十六:数据库——MySQL性能优化

    2017年04月20日 13:09:43 阅读数:6837 这里只是为了记录,由于自身水平实在不怎么样,难免错误百出,有错的地方还望大家多多指出,谢谢. 来自MySQL性能优化的最佳20+经验 为查询 ...

  4. MySQL性能优化(二):优化数据库的设计

    原文:MySQL性能优化(二):优化数据库的设计 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.n ...

  5. mysql 性能优化方向

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  6. redmine在linux上的mysql性能优化方法与问题排查方案

    iredmine的linux服务器mysql性能优化方法与问题排查方案     问题定位:   客户端工具: 1. 浏览器inspect-tool的network timing工具分析   2. 浏览 ...

  7. Mysql 性能优化教程

    Mysql 性能优化教程 目录 目录 1 背景及目标 2 Mysql 执行优化 2 认识数据索引 2 为什么使用数据索引能提高效率 2 如何理解数据索引的结构 2 优化实战范例 3 认识影响结果集 4 ...

  8. 转 Mysql性能优化教程

    Mysql性能优化教程 背景及目标 厦门游家公司(4399.com)用于员工培训和分享. 针对用户群为已经使用过mysql环境,并有一定开发经验的工程师 针对高并发,海量数据的互联网环境. 本文语言为 ...

  9. mysql性能优化-慢查询分析、优化索引和配置 (慢查询日志,explain,profile)

    mysql性能优化-慢查询分析.优化索引和配置 (慢查询日志,explain,profile) 一.优化概述 二.查询与索引优化分析 1性能瓶颈定位 Show命令 慢查询日志 explain分析查询 ...

随机推荐

  1. python图像处理库PIL的基本概念介绍

    PIL中所涉及的基本概念有如下几个:通道(bands).模式(mode).尺寸(size).坐标系统(coordinate system).调色板(palette).信息(info)和滤波器(filt ...

  2. stc15f104w模拟串口使用

    stc15f104w单片机体积小,全8个引脚完全够一般的控制使用,最小系统也就是个电路滤波----加上一个47uf电容和一个103电容即可,但因为其是一个5V单片机,供电需要使用5V左右电源. 该款单 ...

  3. Django ListView实现分页

    效果: url.py main-urls from django.urls import path,include urlpatterns = [ path('admin/', admin.site. ...

  4. 【ABP杂烩】Extensions后缀扩展方法

    1.Extensions介绍 扩展方法使你能够向现有类型“添加”方法,而无需创建新的派生类型.重新编译或以其他方式修改原始类型. 扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用 ...

  5. Lua IUP 环境搭建

    1.从sourceforge.net下载Luabinaries.IUP.CD.IM.LuaGL的源码 2.编译CD 2.1.用cd\mak.vc12中的lua_version53.props替换lua ...

  6. pyinstaller安装配置

    一.工具准备: 1).安装pyinstaller需要以这个包为基础.也就是基础软件包.pyWin32包.下载对应的pyWin32安装包>>地址: https://sourceforge.n ...

  7. DotNetCore深入了解之一Startup类

    一个典型的ASP.NET Core应用程序会包含Program与Startup两个文件.Program类中有应用程序的入口方法Main,其中的处理逻辑通常是创建一个WebHostBuilder,再生成 ...

  8. ES6躬行记(9)——字符串

    在介绍字符串之前,有必要先了解一点Unicode的基础知识,有助于理解ES6提供的新功能和新特性. 一.Unicode Unicode是一种字符集(即多个字符的集合),它的目标是涵盖世界上的所有字符, ...

  9. MyBatis源码解析(八)——Type类型模块之TypeAliasRegistry(类型别名注册器)

    原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/6705769.html 1.回顾 前面几篇讲了数据源模块,这和之前的事务模块都是enviro ...

  10. 翻译wiki(一):Bios boot partition

    文章翻译自wiki,水平有限,若有错万请见谅.原文:https://en.wikipedia.org/wiki/BIOS_boot_partition BIOS boot partition是一个分区 ...