show engine innodb status \G
mysql> show engine innodb status \G
mysql中,在sql语句后面加\G表示将查询结果按列打印。默认情况下,mysql的查询结果是横向输出的,第一行是列头,后面是记录集,这样的话,假如字段比如多,出来的结果就非常乱,非常不适合人类阅读,而加上\G参数之后,表结构就变成纵向输出,即每条记录都会用
- 字段名1:字段值1
- 字段名2:字段值2
的形式显示,方便人类阅读
PS:如何导出:
mysql -u root -p --execute="show engine innodb status \G" > c:/mysql.log
*************************** 1. row ***************************
Type: InnoDB
Name:
Status:
2016-08-21 01:19:58 0x7fc0b6e9d700 INNODB MONITOR OUTPUT
(第一段是头部信息,仅仅声明了输出的开始,内容包括当前的日期和时间,以及自上次输出以来经过的时长。)
Per second averages calculated from the last 48 seconds
(计算出这一平均值的时间间隔,即自上次输出以来的时间,或者是距上次内部复位的时长。)
-----------------
BACKGROUND THREAD(后台线程)
-----------------
srv_master_thread loops: 1 srv_active, 0 srv_shutdown, 637 srv_idle
srv_master_thread log flush and writes: 638
(主循环进行的运行的次数/s和挂起的次数/s)
----------
SEMAPHORES(信号量)
(主要显示系统的当前的信号等待信息及各种等待信号的统计信息,这部分对调整innodb_thread_concurrency参数有非常大的帮助。当等待信号量非常大的时候,可能就需要禁用并发线程检测设置innodb_thread_concurrency=0;)
(semaphore是一种保护便量或抽象数据类型用于构成限制共享资源(比如并行计算环境下的共享内存)访问的方法。基本上以锁的方式实现。)
----------
OS WAIT ARRAY INFO: reservation count 6
(当前等待列表,如果并发数很大,Innodb就必须频繁等待 OS(该部分不包含由spinlock解决的等待)。reservation count(保留统计)和signal count(信号计数)表明InnoDB使用内部同步数组的频繁程度,这些数值表示InnoDB需要等待OS的频率。)
OS WAIT ARRAY INFO: signal count 5
RW-shared spins 0, rounds 5, OS waits 2
(读写的共享锁的计数器)
RW-excl spins 0, rounds 0, OS waits 0
(读写的排他锁的计数器)
RW-sx spins 0, rounds 0, OS waits 0
Spin rounds per wait: 5.00 RW-shared, 0.00 RW-excl, 0.00 RW-sx
(spin waits(空转等待)和spin rounds:与OS wait相比,Spin locks 是低消耗的等待,但它是一种活跃的等待,会浪费CPU资源,因此spin waits和spin rounds 如果很大,CPU资源会被浪费。如果该值达到几十万,CPU危险了。
OS Waits:表明由于互斥的OS的等待。 OS Waits 相对较慢,如果每秒钟该值有几