MySQL 性能优化-数据库死锁监控
MySQL性能优化-数据库死锁监控
by:授客 QQ:1033553122
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 性能优化-数据库死锁监控的更多相关文章
- MySQL 性能优化--优化数据库结构之优化数据类型
MySQL性能优化--优化数据库结构之优化数据类型 By:授客 QQ:1033553122 优化数字数据(Numeric Data) l 对于唯一ID或其它可用字符串或数字表示的值,选择 ...
- MySQL 性能优化--优化数据库结构之优化数据大小
MySQL性能优化--优化数据库结构之优化数据大小 By:授客 QQ:1033553122 尽量减少表占用的磁盘空间.通常,执行查询期间处理表数据时,小表占用更少的内存. 表列 l 尽可能使 ...
- Java面试准备十六:数据库——MySQL性能优化
2017年04月20日 13:09:43 阅读数:6837 这里只是为了记录,由于自身水平实在不怎么样,难免错误百出,有错的地方还望大家多多指出,谢谢. 来自MySQL性能优化的最佳20+经验 为查询 ...
- MySQL性能优化(二):优化数据库的设计
原文:MySQL性能优化(二):优化数据库的设计 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.n ...
- mysql 性能优化方向
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...
- redmine在linux上的mysql性能优化方法与问题排查方案
iredmine的linux服务器mysql性能优化方法与问题排查方案 问题定位: 客户端工具: 1. 浏览器inspect-tool的network timing工具分析 2. 浏览 ...
- Mysql 性能优化教程
Mysql 性能优化教程 目录 目录 1 背景及目标 2 Mysql 执行优化 2 认识数据索引 2 为什么使用数据索引能提高效率 2 如何理解数据索引的结构 2 优化实战范例 3 认识影响结果集 4 ...
- 转 Mysql性能优化教程
Mysql性能优化教程 背景及目标 厦门游家公司(4399.com)用于员工培训和分享. 针对用户群为已经使用过mysql环境,并有一定开发经验的工程师 针对高并发,海量数据的互联网环境. 本文语言为 ...
- mysql性能优化-慢查询分析、优化索引和配置 (慢查询日志,explain,profile)
mysql性能优化-慢查询分析.优化索引和配置 (慢查询日志,explain,profile) 一.优化概述 二.查询与索引优化分析 1性能瓶颈定位 Show命令 慢查询日志 explain分析查询 ...
随机推荐
- [原创]K8 Cscan 3.6大型内网渗透自定义扫描器
前言:无论内网还是外网渗透信息收集都是非常关键,信息收集越多越准确渗透的成功率就越高但成功率还受到漏洞影响,漏洞受时效性影响,对于大型内网扫描速度直接影响着成功率漏洞时效性1-2天,扫描内网或外网需1 ...
- Zookeeper-watcher机制源码分析(二)
服务端接收请求处理流程 服务端有一个NettyServerCnxn类,用来处理客户端发送过来的请求 NettyServerCnxn public void receiveMessage(Channel ...
- Percona Server 升级 5.7 到 8.0 版本
今天发现 Percona Server 已经发布了 8.0 的版本,于是把服务端的 MYSQL 的版本升级了下:备份好数据,升级按照官方的文档来 $ percona-release enable re ...
- mysql 获取昨天日期、今天日期、明天日期以及前一个小时和后一个小时的时间
1.当前日期 select DATE_SUB(curdate(),INTERVAL 0 DAY) ; 2.明天日期select DATE_SUB(curdate(),INTERVAL -1 DAY) ...
- Flex(ActionScript)与JavaScript交互的两种方式示例
随着各单位部门信息化进程的不断发展,互通互联.共享协调不断的被越来越多的客户所重视.很多新项目都要去必须能够集成已有的早期系统,至少也要能够实现交互对接.今天跟大家分享的是系统对接中ActionScr ...
- for循环输出素数探究【java】
一.判断953是不是为素数(质数). 代码: /** 判断953是不是为素数(质数) 分析: 素数指整数在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数. 假设953是素数,则: ...
- MFC控件编程之鼠标跟键盘消息
MFC控件编程之鼠标跟键盘消息 在MFC中鼠标消息.键盘消息我们很常用.所以说一下. 鼠标消息分为客户区消息.跟非客户区消息. 一丶客户区消息 我们可以处理消息.来进行我们相应的函数即可. MFC添加 ...
- MongoDB 菜鸟入门“秘籍”
1.MongoDB介绍 1.1 什么是MongoDB ? MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统. 在高负载的情况下,添加更多的节点,可以保证服务器性能. Mo ...
- go使用context包避免goroutine泄露问题
go是带内存自动回收的特性,因此内存一般不会泄漏.但是Goroutine确存在泄漏的情况,同时泄漏的Goroutine引用的内存同样无法被回收. 下面的程序中后台Goroutine向管道输入自然数序列 ...
- Linux常用性能工具功能、用法及原理(一)
Linux性能观测工具按类别可分为系统级别和进程级别,系统级别对整个系统的性能做统计,而进程级别则具体到进程,为每个进程维护统计信息. 按实现原理分,可分为基于计数器和跟踪以及剖析.含义如下: 计数器 ...