Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4842268
  • 博文数量: 930
  • 博客积分: 12070
  • 博客等级: 上将
  • 技术积分: 11448
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-15 16:57
文章分类

全部博文(930)

文章存档

2011年(60)

2010年(220)

2009年(371)

2008年(279)

分类: Mysql/postgreSQL

2011-01-03 14:10:16

在使用Innodb做为存储引擎的数据库系统中,可以使用innodb_monitor 来监控数据库的性能,启动innodb_monitor的方法为 Create table innodb_monitor (i int) engine=innodb 通过建立这个表就启动了innodb_monitor,监控的结果并不会记录到这个表中,而是记录到了mysql的err日志中,如果我们想监控更我的关于innodb的锁信息还可更进一步的建立表create table innodb_lock_monitor (i int) engine=innodb 这样在日志中会加入更多的锁信息,如果要关闭监控只要简单的删除这两个表就可以了.Drop table innodb_monitor; drop table innodb_lock_monitor;

参考:

InnoDB 监视器(Monitors)

从版本 3.23.42 开始,InnoDB 中就包含了 InnoDB Monitors,它可以显示出 InnoDB 的内部状态。从版本 3.23.52 和 4.0.3 开始,你可以使用一个新的 SQL 命令

SHOW INNODB STATUS
 

来读取标准 InnoDB Monitor 给 SQL client 的输出信息。这些信息对性能调整有益。

 

另外一个使用 InnoDB Monitors 方法就是让它在服务程序 mysqld 的标准输出上持续地写出信息。当开关打开时,InnoDB Monitors 大约每 15 秒显示一次数据(注意:MySQL 的客户端并不会显示任何东西)。一个简单地使用它的方法就是以一个命令行方式执行 mysqld 。否则输出将会定向到 MySQL 服务错误日志(error log file)中 'yourhostname'.err (在 Windows 下为 mysql.err),在 Windows 系统中必须在 MS-DOS 使用提示符下以 --console 选项运行 mysqld-max 来指令信息输出在命令提示符窗口上。

显示的信息包含下列信息:

  • 每一个活动的事务(active transaction)保持的表和记录锁定
  • 事务的锁等待 (lock waits of a transactions)
  • 线程的信号量等待 (semaphore waits of threads)
  • 文件 I/O 的等待请求 (pending file i/o requests)
  • 缓冲池(buffer pool)的统计信息
  • InnoDB 主线程的 purge buffer 和 insert buffer 归并活动(merge activity)

 

通过下列的 SQL 命令,可以使标准的 InnoDB Monitor 记录到标准的 mysqld 的输出上:

CREATE TABLE innodb_monitor(a int) type = innodb;
 

通过它来停止:

DROP TABLE innodb_monitor;
阅读(1154) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2011-01-05 11:13:03

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com