有4中类型的innodb监控器;
1标准监控器,展示下面的内容
- 每个事务持有的表和记录锁
- 事务的锁等待
- 线程的信号量等待
- 悬挂起来的文件io请求
- buffer pool统计
-
主要innodb线程的purge,changebuffer合并的活动
2锁监控器打印额外的锁信息
3表空间监视器,打印共享表空间的segments信息和验证表结构,看来这个没什么用,果然是没啥用,要被移除了
4表监视器打印innodb内部数据字典的内容。
当启用监视器的时候,会输出到标准错误输出中,每15秒输出一次,通常会直接输入到错误日志中。show engine innodb status会输出到数据目录中的一个文件中,文件的名字是innodb_status.pid,mysql服务正常关闭的时候会删除文件,只当选项innodb-status-file=1被设置的时候才会创建这个文件。启用标准监控器的方法
1CREATE TABLE innodb_monitor (a INT) ENGINE=INNODB;
关闭标准监控器的方法
1DROP TABLE innodb_monitor;
在5.6.16可以通过设置innodb_status_output系统变量来启用关闭
set GLOBAL innodb_status_output=ON;
innodb_status_output to OFF.
启用锁监控器
CREATE TABLE innodb_lock_monitor (a INT) ENGINE=INNODB;
关闭锁监控器
DROP TABLE innodb_lock_monitor;
在5.6.16版本,可以设置变量启动关闭
set GLOBAL innodb_status_output=ON;
set GLOBAL innodb_status_output_locks=ON;
表监控器启用,关闭
CREATE TABLE innodb_table_monitor (a INT) ENGINE=INNODB;
DROP TABLE innodb_table_monitor;
主要作用也就是定时输出,来查看历史,没太多的用处。