innodb的锁时间
观察innodb的锁时间,需要关注:
mysqladmin extended-status -r -i 1 -uroot | grep "Innodb_row_lock_time"
Innodb_row_lock_current_waits:当前正在等待锁定的数量;
Innodb_row_lock_time :从系统启动到现在锁定的总时间长度,单位ms;
Innodb_row_lock_time_avg :每次等待所花平均时间;
Innodb_row_lock_time_max:从系统启动到现在等待最长的一次所花的时间;
Innodb_row_lock_waits :从系统启动到现在总共等待的次数。
如我的压测语句:
insert into i0( id, type, num, iid, uid, iid, sid,bid, cid, q, gmt_create, gmt_modified, status, version, time_out, time_number, o_gmt_create,aid, ff, flag, code, cache, sq, rq) values( :v_id, '1',:v_opt_num, '1352', 1640350003, 16441266176, 0, '1370761289618','19101339145067259', '2', now(), now(), '1', '0', null, '0', now(), '0', null, '2', 'C', 1, null, null);update q0 set q=q-0, v=v+1, gmt_modified=now(), rq = CASE WHEN ((rq + 2 ) >= 0 ) then rq + 2 ELSE 0 END where id =6060 and iid = 16441266176 and sid = 0 and (q - rq - 2) >= 0 and q-0>=0;
压测结果:
Summary: SQL01 exec=11756, rows=11756=100/e, avg=518 us Summary: SQL02 exec=12800, rows=12800=100/e, avg=14483 us Summary: exec=8488/s, qtps=16343/s
观察到的锁情况:
| Innodb_row_lock_time | 868 | | Innodb_row_lock_time_avg | 0 | | Innodb_row_lock_time_max | 0 | | Innodb_row_lock_time | 114932 | | Innodb_row_lock_time_avg | 0 | | Innodb_row_lock_time_max | 0 | | Innodb_row_lock_time | 61775 | | Innodb_row_lock_time_avg | 0 | | Innodb_row_lock_time_max | 0 | | Innodb_row_lock_time | 0 |
从占有锁到释放锁一共消耗:114932ms,不可能是一条记录的时间,再根据实时状态:
-------- -----load-avg---- ---cpu-usage--- ---swap--- -QPS- -TPS- -Hit%- ---innodb rows status--- time | 1m 5m 15m |usr sys idl iow| si so| ins upd del sel iud| lor hit| ins upd del read| 19:47:20| 1.26 1.21 1.20| 5 1 93 0| 0 0| 0 0 0 0 0| 0 100.00| 0 0 0 0| 19:47:21| 1.26 1.21 1.20| 1 1 98 0| 0 0| 0 1 0 5 1| 9 100.00| 0 1 0 1| 19:47:22| 1.24 1.21 1.20| 0 0 100 0| 0 0| 0 0 0 6 0| 1 100.00| 0 0 0 0| 19:47:23| 1.24 1.21 1.20| 7 3 90 0| 0 0| 2932 2930 0 6 5862| 100502 99.91| 2712 2809 0 2809| 19:47:24| 1.24 1.21 1.20| 16 4 79 0| 0 0| 7939 7940 0 6 15879| 293693 99.91| 7257 7954 0 7954| 19:47:25| 1.24 1.21 1.20| 5 2 93 0| 0 0| 1929 1932 0 6 3861| 101527 99.94| 1762 2039 0 2039|
实际每秒update 7940条,平均每条消耗:
root@(none) 07:47:33>select 114932/7940ms; +-------------+ | 114932/7940 | +-------------+ | 14.4751 | +-------------+
平均每条消耗14.4751ms和压测结果avg=14483 us吻合,对于单条语句的更新来说这个锁占用的时间还是挺长的。
转载于:https://www.cnblogs.com/sunss/p/3170132.html
innodb的锁时间相关推荐
- MySQL · 引擎分析 · InnoDB行锁分析
前言 理解InnoDB行锁,分析一条SQL语句会加什么样的行锁,会锁住哪些数据范围对业务SQL设计和分析线上死锁问题都会有很大帮助.对于InnoDB的行锁,已经有多篇月报进行了介绍,这里笔者借鉴前面月 ...
- 秒懂INNODB的锁
今天我们来聊聊MySQL中InnoDB存储引擎的锁. 锁是数据库系统系统区别于文件系统的一个关键特性. lock和 latch latch latch在MySQL中是用来保证并发多线程操作操作临界资源 ...
- 9、 InnoDB行锁
在 MySQL 中,InnoDB 行锁通过给索引上的索引项加锁来实现,如果没有索引,InnoDB 将通过隐藏的聚簇索引来对记录加锁. InnoDB 支持 3 种行锁定方式: 行锁(Record Loc ...
- MySQL高级 - 锁 - InnoDB行锁 - 争用情况查看
InnoDB 行锁争用情况 show status like 'innodb_row_lock%'; Innodb_row_lock_current_waits: 当前正在等待锁定的数量Innodb_ ...
- InnoDB 事务/锁/多版本分析?你了解多少?
目录 • InnoDB事务 – 事务结构/功能 – XA事务/Group Commit – mini-transaction• InnoDB锁 – 锁结构/类型/功能 – 锁等待/死锁检测 – 自增序 ...
- mysql innodb 间隙锁_Mysql innodb 间隙锁
前段时间系统老是出现insert死锁,很是纠结.经过排查发现是间隙锁!间隙锁是innodb中行锁的一种, 但是这种锁锁住的却不止一行数据,他锁住的是多行,是一个数据范围.间隙锁的主要作用是为了防止出现 ...
- MySQL数据库锁机制之MyISAM引擎表锁和InnoDB行锁详解
MySQL中的锁概念 Mysql中不同的存储引擎支持不同的锁机制.比如MyISAM和MEMORY存储引擎采用的表级锁,BDB采用的是页面锁,也支持表级锁,InnoDB存储引擎既支持行级锁,也支持表级锁 ...
- Mysql innodb 间隙锁
前段时间系统老是出现insert死锁,很是纠结.经过排查发现是间隙锁!间隙锁是innodb中行锁的一种, 但是这种锁锁住的却不止一行数据,他锁住的是多行,是一个数据范围.间隙锁的主要作用是为了防止出现 ...
- MySQL探秘(七):InnoDB行锁算法
在上一篇<InnoDB一致性非锁定读>中,我们了解到InnoDB使用一致性非锁定读来避免在一般的查询操作(SELECT FOR UPDATE等除外)时使用锁.然而锁这个事情是无法避免的, ...
最新文章
- android 手写字体识别,一种基于Android系统的手写数学公式识别及生成MathML的方法...
- 【必读】文案都写不好,还谈什么互联网思维
- ajax 设置Access-Control-Allow-Origin实现跨域访问
- centos 6.5 rpm mysql_Linux平台(CentOS 6.5) RPM包方式安装 Mysql 5.7
- 【机器学习实战】第2章 k-近邻算法(kNN)
- HDU1394(权值线段树)
- 打卡小程序源码修复登录接口
- 收获,不止SQL优化——抓住SQL的本质--第六章
- 《CLR via C#》笔记——运行时序列化(2)
- C# 人民币大小写转换正则表达式
- scratch课程案例——漫天飞雪
- SI24R1可以替代NRF24L01P软件硬件DIY兼容成功
- 错误 LNK1104 无法打开文件“C:\Users\Administrator\Desktop\新建文件夹\ConsoleApplication1\x64\Debug\ConsoleApplicat
- 批量/去掉office 2010 Word中标题前的黑点
- SpringBoot 检索篇 - 整合 Elasticsearch7.6.2
- 【HarmonyOS】鸿蒙3.0使用WebView进行链接跳转,告警“hwbr_engine_AwContentsClient: Denied starting an intent without a
- Scala学习小计 - 什么是模式匹配(pattern-matchin)?
- openresty中应用murmurHash
- 画图软件visio安装
- 【Android组件化】javaPoet的使用
热门文章
- perl 如何判断变量为空
- 虚函数(动态绑定)对于 OO/C++的重要性
- java 存储过程简单例子
- 揭开OpenStack 统计资源和资源调度的面纱
- Android系列之Fragment(三)----Fragment和Activity之间的通信(含接口回调)
- LNMP - nginx代理详解
- Juniper防火墙透明模式
- (推荐)(提供下载)ORACLE常见问题一千问(不怕学不成、就怕心不诚!)
- FLASH与ASP.NET通讯[Flash | CS3 | ActionScript | ASP.NET | FluorineFx ]
- 简单servlet和jdbc回顾