mysql 分析事务锁涉及到的几张表

等待事件记录表

我们常常需要借助于等待事件来进行分析,找出到底数据库响应是慢在哪里。

等待事件记录表有三张,这些表记录了当前与最近在MySQL实例中发生了哪些等待事件,时间消耗是多少。

events_waits_current表:

主要可以查看:
THREAD_ID
EVENT_NAME
OPERATION
COLLECT_TIME

记录当前正在执行的等待事件的,每个线程只记录1行记录.

THREAD_ID,EVENT_ID:线程ID和当前事件ID。THREAD_ID和EVENT_ID值构成了该事件信息行的唯一标识

END_EVENT_ID:当一个事件正在执行时该列值为NULL,当事件执行结束时把该事件的ID更新到该列

EVENT_NAME:产生事件的instruments名称,该名称来自setup_instruments表的NAME字段值

SOURCE:产生该事件的instruments所在的源文件名称以及检测到该事件发生点的代码行号。如果遇到互斥锁、阻塞等,可以检查源代码查看发生这种情况的上下文环境

TIMER_START,TIMER_END,TIMER_WAIT:事件的开始、结束、经过时间,单位为皮秒。如果事件未执行完,TIMER_END=当前时间,TIMER_WAIT=TIMER_END - TIMER_START。如果采集该事件的instruments配置项TIMED = NO,则不会收集事件的时间信息,三项均为NULL 

SPINS:互斥量和自旋次数。如果该列值为NULL,则表示代码中没有使用自旋或自旋没有被监控

OBJECT_SCHEMA,OBJECT_NAME,OBJECT_TYPE:正在被执行的对象的schema、名称和类型

OBJECT_INSTANCE_BEGIN:内存中的地址

NESTING_EVENT_ID:表示该行信息中的EVENT_ID事件嵌套在哪个事件中,即父事件的EVENT_ID

NESTING_EVENT_TYPE:父事件的事件类型,有效值有:TRANSACTION,STATEMENT,STAGE或WAIT

OPERATION:执行的操作类型,如:lock、read、write、timed_wait

NUMBER_OF_BYTES:操作读取或写入的字节数或行数。对于文件IO等待,该值表示字节数;对于表I/O等待(wait/io/table/sql/handler instruments事件),该值表示行数。如果值大于1,则表示该事件对应一个批量I/O操作。

FLAGS:留作将来使用

events_waits_history表:

记录已经执行完的最近的等待事件历史,默认每个线程只记录10行记录

events_waits_history_long表:

记录已经执行完的最近的等待事件历史,默认所有线程的总记录行数为10000行

注意:等待事件相关配置中,setup_instruments表中绝大部分的等待事件instruments都没有开启(IO相关的等待事件instruments默认大部分已开启),setup_consumers表中waits相关的consumers配置默认没有开启。

原博文地址:

https://blog.csdn.net/Hehuyi_In/article/details/105189571

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值