MySQL常用性能突发事件分析命令

  1. SHOW PROCESSLIST
    当前MySQL数据库的运行的所有线程
    在这里插入图片描述

  2. INNODB_TRX
    当前运行的所有事务
    在这里插入图片描述

  3. INNODB_LOCKS
    当前出现的锁
    select * from information_schema.innodb_locks\G;

  4. INNODB_LOCK_WAITS
    锁等待的对应关系
    select * from information_schema.innodb_lock_waits;

  5. SHOW OPEN TABLES where In_use >0;
    当前打开表
    查看哪些表在使用中,In_use列表示有多少线程正在使用某张表,Name_locked表示表名是否被锁,这一般发生在Drop或Rename命令操作这张表时。所以这条命令不能帮助解答我们常见的问题:当前某张表是否有死锁,谁拥有表上的这个锁等。
    show open tables where in_use > 0;

  6. SHOW ENGINE INNODB STATUS \G;
    Innodb状态
    在这里插入图片描述具体分析如下:
    ①.Header
    这部分简单的打印,输出的时间,以及自从上次输出的间隔时间。
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190221140913318.png
    ②.BACKGROUND THREAD
    在这里插入图片描述
    srv_master_thread loops:master线程的循环次数,master线程在每次loop过程中都会sleep,sleep的时间为1秒。而在每次loop的过程中会选择active,shutdown,idle中一种状态执行。master在不停的循环,所以其值是随时间递增的。
    srv_master_thread log flush and writes:master线程在后台会定期刷新日志,日志刷新是由参数innodb_flush_log_at_timeout参数控制前后刷新时间差。
    ③. SEMAPHORES 信号量
    在这里插入图片描述
    OS WAIT ARRAY INFO 操作系统等待数组的信息,它是一个插槽数组,innodb使用了多少次操作系统的等待
    保留统计(reservation count)显示了innodb分配插槽的频度
    信号计数(signal count) 衡量的是线程通过数组得到信号的频度
    RW-shared spins:#这行显示读写的共享锁的计数器
    RW-excl spins:#这行显示读写的排他锁的计数器
    ④. TRANSACTIONS
    包含Innodb 事务(transactions)的统计信息,还有当前活动的事务列表。
    在这里插入图片描述transaction id: 这个ID是一个系统变量随时每次新的transaction产生而增加。
    Purge done:正在进行清空(purge)操作的transaction ID。
    History list length:记录了undo spaces内unpurged的事务的个数。
    ⑤. FILE I/O
    显示了I/O Helper thread的状态,包括一些统计信息
    在这里插入图片描述144030 OS file reads:显示了reads, writes, and fsync()调用次数。
    0.00 reads/s…… : 显示了每秒的统计信息
    备注:“aio”表示“ 异步I/O(asynchronous I/O).”
    ⑥. INSERT BUFFER AND ADAPTIVE HASH INDEX
    在这里插入图片描述
    Ibuf:insertbuffer的一些信息,包括free list, segment size
    Hash table:显示了hash table的一些信息
    最后一行显示了每秒进行了多少次hash搜索,以及非hash搜索
    ⑦. LOG
    在这里插入图片描述
    Log sequence number表示的是redo log buffer中的lsn
    Log flushed up to表示的是redo log file中的lsn
    Pages flushed up to表示的缓冲池最旧脏页的lsn
    Last checkpoint at 指的就是最近一个物理页刷新到磁盘时,它的fil_page_lsn的变量值
    ⑧. BUFFER POOL AND MEMORY
    当前内存使用状态
    在这里插入图片描述Pages read ahead:显示了每秒线性预读跟随机预读的次数
    备注:InnoDB 提供了两种预读的方式,一种是 Linear read ahead,由参数innodb_read_ahead_threshold控制,当你连续读取一个 extent 的 threshold 个 page 的时候,会触发下一个 extent 64个page的预读。另外一种是Random read-ahead,由参数innodb_random_read_ahead控制,当你连续读取设定的数量的page后,会触发读取这个extent的剩余page。InnoDB 的预读功能是使用后台线程异步完成。
    ⑨. ROW OPERATIONS
    在这里插入图片描述
    0 queries inside InnoDB, 0 queries in queue:显示了有多少线程在Innodb内核
    read views open inside InnoDB:显示了有多少read view被打开了,一个read view是一致性保证的MVCC “snapshot”
    备注:innodb多版本并发(MVCC)通过read view来确定一致性读时的数据库snapshot, innodb的read view确定一条记录能否看到,在RC隔离级别下,是每个SELECT都会获取的read view;在RR隔离级别下,则是当事务中的第一个SELECT请求才创建read view;

  7. SHOW STATUS LIKE ‘innodb_row_lock_%’;
    查看当前锁性能状态
    在这里插入图片描述Innodb_row_lock_current_waits:当前等待锁的数量
    Innodb_row_lock_time:系统启动到现在、锁定的总时间长度
    Innodb_row_lock_time_avg:每次平均锁定的时间
    Innodb_row_lock_time_max:最长一次锁定时间
    Innodb_row_lock_waits:系统启动到现在、总共锁定次数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值