首页 > 代码库 > 监控sql语句(mysql)

监控sql语句(mysql)

 

最近在做一个工具网站,刚好看了下人人车的架构经验,看看他们的坑,我想我们的系统应该有个数据库监控和容灾的体系。

上网搜集总结下。

  数据库的设计应该是小而美,精而简的,数据库也只是整体项目的一部分,像触发器,存储过程这些能实现的,在整体项目里面肯定也可以用应用程序代码来完成。我们用MySQL,就是用它厉害的地方,比如:表、索引、事务这些,而不是要它所有的功能都得用上。MySQL5.6之前,生产环境的主库里面是不允许使用子查询的。MySQL5.6之前子查询的性能特别差。建议使用mysql5.6以后的mysql数据库

1.一个基础的sql监控,查看执行sql的耗时

  (1) 开启profiling参数 : set profiling=1;
  (2) 执行sql
  (3) 通过执行SHOW PROFILES 命令获取当前系统中保存的多个Query的profile的信息。(可选)
  (4 )计算之前执行的sql时间总和:

技术分享

 

  不过这种方法一般的sql连接工具都会有提示

 

技术分享

(mysql-front)

 

2。开启mysql的query日志,配置日志路径

  位置是 mysql.ini

  

log=C:/AppServ/MySQL/mysql.log

  这样mysql的所有sql操作都会记录到这个日志中去。

  在linux可以用命令  tail -f /var/log/mysql/mysql.log 进行实时查看

  windows没有tail命令可以下载 baretail 工具进行实时查看

 

监控sql语句(mysql)