mysql dba系统学习(8)查询日志文件功能 mysql dba系统学习(9)slow query log慢查询日志功能
查询日志的作用是记录所有客户端发来的sql语句,也就是记录客户端的所有操作
Log参数将要过时,现在用general_log来代替
打开查询日志功能
mysql> showvariables like "%log";
+----------------+-------+
| Variable_name| Value |
+----------------+-------+
| back_log| 50|
| general_log| OFF|
| log| OFF|
| relay_log||
| slow_query_log | OFF|
| sync_binlog| 0|
+----------------+-------+
6 rows in set (0.01 sec)
mysql> set global general_log=1;
Query OK, 0 rows affected (0.18 sec)
mysql> set globallog=1;
Query OK, 0 rows affected, 1 warning (0.00sec)
mysql> showvariables like "%log";
+----------------+-------+
| Variable_name| Value |
+----------------+-------+
| back_log| 50|
| general_log| ON|
| log| ON|
| relay_log||
| slow_query_log | OFF|
| sync_binlog| 0|
+----------------+-------+
6 rows in set (0.00 sec)
也可以在my.cnf中添加参数
general_log=1
general_log_file=/tmp/chenzhongyang.log这样来设定
mysql> show variables like"%file";
+---------------------+-----------------------------------------+
| Variable_name| Value|
+---------------------+-----------------------------------------+
| ft_stopword_file| (built-in)|
| general_log_file| /tmp/chenzhongyang.log|
| init_file||
| local_infile| ON|
| pid_file|/usr/local/mysql/var/test4.wolf.org.pid |
| relay_log_info_file | relay-log.info|
| slow_query_log_file |/usr/local/mysql/var/test4-slow.log|
+---------------------+-----------------------------------------+
查看日志文件的内容
[root@test4 ~]# tail -f/tmp/chenzhongyang.log
/usr/local/mysql/libexec/mysqld, Version:5.1.70-log (Source distribution). started with:
Tcp port: 3306Unix socket: /tmp/mysql.sock
TimeId CommandArgument
130903 16:09:431 Connectroot@localhost on
1 Queryselect@@version_comment limit 1
130903 16:10:141 Queryshow variables like "%file"
130903 16:12:091 Queryselect * fromtt
130903 16:12:161 QuerySELECT DATABASE()
1 Init DBtest
130903 16:12:181 Queryselect * fromtt
一般情况下我们不打开查询日志功能,因为他对系统效率的影响很大
管理查询日志文件
一般的日志文件会很大,所以要处理日志
[root@test4 ~]# mysqladminflush-logs;刷新日志所有日志文件
from: http://wolfword.blog.51cto.com/4892126/1287978
慢查询日志(不包括获取锁的时间)
1,开启慢查询日志功能
以前的版本中开启慢查询日志功能的参数是--log_slow_queries在my.cnf文件中指定,但是现在新的版本中用参数--slow_query_log和--slow_query_log_file来指定
slow_query_log=1
slow_query_log_file=/tmp/mysqlslow.log
重新启动mysql
mysql> show variables like "%slow%";
+---------------------+--------------------+
| Variable_name | Value |
+---------------------+--------------------+
| log_slow_queries | ON |
| slow_launch_time | 2 |
| slow_query_log | ON |
| slow_query_log_file | /tmp/mysqlslow.log |
+---------------------+--------------------+
4 rows in set (0.00 sec)
2,慢查询相关的 参数long_query_time
当查询超过long_query_time指定的时间,那么就会记录在慢查询日志文件中,默认是10秒
mysql> show variables like "%long%";
+--------------------+-----------+
| Variable_name | Value |
+--------------------+-----------+
| long_query_time | 10.000000 |
我们来吧时间调短试试,看看什么变化
mysql> set session long_query_time=1; 调到1秒
Query OK, 0 rows affected (0.00 sec)
mysql> show variables like "%long%";
+--------------------+----------+
| Variable_name | Value |
+--------------------+----------+
| long_query_time | 1.000000 |
| max_long_data_size | 1048576 |
+--------------------+----------+
2 rows in set (0.00 sec)
mysql> use test;
Database changed
mysql> create table t as select * from information_schema.tables;
Query OK, 53 rows affected (0.12 sec)
Records: 53 Duplicates: 0 Warnings: 0
mysql> insert into t select * from t;
Query OK, 3392 rows affected (0.11 sec)
Records: 3392 Duplicates: 0 Warnings: 0
这个时候达到了1秒钟了所以就要记录sql语句
mysql> insert into t select * from t;
^[[AQuery OK, 6784 rows affected (1.15 sec)
Records: 6784 Duplicates: 0 Warnings: 0
mysql> system more /tmp/mysqlslow.log
/usr/local/mysql/libexec/mysqld, Version: 5.1.70-log (Source distribution). star
ted with:
Tcp port: 3306 Unix socket: /tmp/mysql.sock
Time Id Command Argument
# Time: 130903 18:46:28
# User@Host: root[root] @ localhost []
# Query_time: 1.150157 Lock_time: 0.000205 Rows_sent: 0 Rows_examined: 13568
use test;
SET timestamp=1378205188;
insert into t select * from t;
3,慢查询相关的 参数log_queries_not_using_indexes
如果log_queries_not_using_indexes为ON的话,当执行一个sql语句的时候,如果一个表没有索引就会把这个信息记录在慢查询文件中
mysql> show variables like "%log_queries_not%"
-> ;
+-------------------------------+-------+
| Variable_name | Value |
+-------------------------------+-------+
| log_queries_not_using_indexes | OFF |
+-------------------------------+-------+
1 row in set (0.00 sec)
我们来吧log_queries_not_using_indexes设置为ON的时候来试试吧
mysql> set global log_queries_not_using_indexes=on;
Query OK, 0 rows affected (0.00 sec)
mysql> show variables like "%log_queries_not%";
+-------------------------------+-------+
| Variable_name | Value |
+-------------------------------+-------+
| log_queries_not_using_indexes | ON |
+-------------------------------+-------+
1 row in set (0.01 sec)
mysql> show index from t; 表t没有索引
Empty set (0.00 sec)
mysql> select * from t where TABLE_NAME="xxxxxxxxxxx";
Empty set (0.11 sec)
这个时候慢日志文件记录下来了这个sql语句
mysql> system tail /tmp/mysqlslow.log;
# User@Host: root[root] @ localhost []
# Query_time: 1.150157 Lock_time: 0.000205 Rows_sent: 0 Rows_examined: 13568
use test;
SET timestamp=1378205188;
insert into t select * from t;
# Time: 130903 18:58:17
# User@Host: root[root] @ localhost []
# Query_time: 0.100749 Lock_time: 0.057377 Rows_sent: 0 Rows_examined: 27136
SET timestamp=1378205897;
select * from t where TABLE_NAME="xxxxxxxxxxx";
mysql>
4,工具mysqldumpslow用来分析sql语句慢查询
[root@test4 Desktop]# mysqldumpslow -s t -t 2 /tmp/mysqlslow.log
Reading mysql slow query log from /tmp/mysqlslow.log
Count: 1 Time=1.15s (1s) Lock=0.00s (0s) Rows=0.0 (0), root[root]@localhost
insert into t select * from t
Count: 1 Time=0.04s (0s) Lock=0.06s (0s) Rows=0.0 (0), root[root]@localhost
select * from t where TABLE_NAME="S"
from: http://wolfword.blog.51cto.com/4892126/1287992
mysql dba系统学习(8)查询日志文件功能 mysql dba系统学习(9)slow query log慢查询日志功能相关推荐
- suse查看mysql内存使用情况_MySQL 慢查询日志(Slow Query Log)
4.格式化慢查询日志 结构化慢查询日志就是把慢查询日志中的重要信息按照便于阅读以及按照特定的排序方式来提取SQL. 这种方式有点类似于Oracle中有个tkprof来格式化oracle的trace文件 ...
- MySQL:动态开启慢查询日志(Slow Query Log)
前言 在开发中,高效能的程序 也包括 高效能的查询,所以优化SQL也是程序员必要技能之一.要优化就必须要有慢日志记录才可以知道哪些查询慢,然后反向去修改 慢日志设置方式 写入文件 写入数据库 实践操作 ...
- 天堂2启动mysql就没了_启用二进制日志文件进行mysql数据恢复
启用二进制日志文件进行mysql数据恢复 查看文件/etc/my.cnf中[mysqld]配置块的是否配置log-bin 项,用来记录数据库更改的日志, 然后设置要需要写入日志的数据库或者不要写入日志 ...
- mysql slowlog中querytime分析_技术分享 | Slow Query Log 使用详解
作者:宓祥康 爱可生交付服务部团队 DBA 擅长日志分析.问题排查等:主要负责处理 MySQL 与我司自研数据库自动化管理平台 DMP 的日常运维问题,对数据库及周边技术有浓厚的学习兴趣. 本文来源: ...
- cdn日志文件导入mysql进行分析,核心用到 Python
本文需求背景 周六日出现CDN大量请求,现需要分析其请求频次与来源,查询是否存在被攻击问题. 本文以阿里云CDN日志作为辅助查询数据,其它云平台大同小异. 系统提供的离线日志如下所示. 需求落地如下 ...
- 日志文件和mysql同步到kafka_logstash_output_kafka:Mysql同步Kafka深入详解
0.题记 实际业务场景中,会遇到基础数据存在Mysql中,实时写入数据量比较大的情景.迁移至kafka是一种比较好的业务选型方案. 而mysql写入kafka的选型方案有: 方案一:logstash_ ...
- mySQL Slow Query Log Rotation(慢查询日志轮循设置)
要分析公司网站MYSQL性能,常规MY.CNF调优是一方面,慢查日志分析也重要. 但现在日志太大了,作一个每天自动切割的任务.将脚本放在/etc/logrotate.d/. 如何分析导出日志,以后再写 ...
- 6、MySQL慢查询日志(Slow Query Log)
慢查询日志用来记录在 MySQL 中执行时间超过指定时间的查询语句.通过慢查询日志,可以查找出哪些查询语句的执行效率低,以便进行优化. 通俗的说,MySQL 慢查询日志是排查问题的 SQL 语句,以及 ...
- 日志文件和mysql同步到kafka_logstash_output_kafka:Mysql 同步 Kafka 深入详解
0.题记 实际业务场景中,会遇到基础数据存在 Mysql 中,实时写入数据量比较大的情景.迁移至kafka是一种比较好的业务选型方案. 而mysql写入kafka的选型方案有: 方案一:logstas ...
最新文章
- 【01】Clean Code
- Wireshark图解教程(简介、抓包、过滤器)
- python xlrd安装_详解python中xlrd包的安装与处理Excel表格
- 电商活动难么多,不怕一个电商素材网站解救你,赶紧收藏
- Spring-jdbc-AbstractRoutingDataSource
- laravel5.5路由使用name的好处
- Java制作证书的工具keytool用法总结
- [SQL面试经验] 经典sql面试题及答案第1期
- 疯狂Java讲义(十三)----第一部分
- android webview最新版下载,AndroidWebView
- volte短信流程-注册
- C语言格式化输出函数printf详解——C语言基础知识
- 工业交换机的管理方式有哪些?
- java地理位置的获取_Java 根据 IP 获取地理位置
- 应聘总经理的答卷,供大家打分!(二)
- 泰戈尔《飞鸟集》节选
- Modern Robotics读书笔记(一)
- 网络是如何连接的--读书笔记
- java酒店管理系统小型项目
- java入门—第二节(1)(数据类型)
热门文章
- MacDown的使用规范总结 96 卞泽 2016.04.08 15:05* 字数 1273 阅读 4295评论 10喜欢 34 MacDown是什么? 请点击here MacDown下载地址,请点
- 机器学习算法进阶——决策树和随机森林
- 【模型迭代】模型迭代
- RocketMQ控制台安装教程
- “最害怕过周末”、“希望每天都干活”、“水电费又白交了”
- 自然语言处理技术(NLP)在推荐系统中的应用 原2017.06.29人工智能头条 作者: 张相於,58集团算法架构师,转转搜索推荐部负责人,负责搜索、推荐以及算法相关工作。多年来主要从事推荐系统以及机
- Oracle-Materialized View解读
- 常用的20个正则表达式
- 数据结构与算法笔记(六)—— 冒泡排序
- RedisTemplate方法的一些简单运用