# MySQL服务日志
[TOC]
## MySQL服务日志分类
* 错误日志(error):记录MySQL服务进程mysqld在启动/关闭或者运行过程中遇到的错误信息;
* 查询日志(query log),分为以下两类:
* 普通日志(general query log):记录客户端连接信息和执行的SQL语句信息( *生产环境中一般不开启* );
* 慢查询日志(slow query log):记录执行时间超出指定值(long_query_time)的SQL语句;
* 二进制日志(binary log):记录数据被修改的相关信息
### 慢查询日志
慢查询日志是用来记录执行时间超过指定时间的查询语句。
通过慢查询日志,可以查找出哪些查询语句的执行效率很低,以便进行优化。
一般建议开启,它对服务器性能的影响微乎其微,但是可以记录mysql服务器上执行了很长时间的查询语句,可以帮助我们定位性能问题的。
#### 查看慢查询日志的定义
~~~
mysql> SHOW GLOBAL VARIABLES LIKE 'slow_query%';
| slow_query_log | OFF # 定义慢查询日志的
| slow_query_log_file |/mydata/data/stu18-slow.log # 输出方式为file(文件)时定义慢查询日志的位置
~~~
#### 启动和设置慢查询日志
通过配置文件my.cnf中的`log-slow-queries`选项可以开启慢查询日志;
>[danger]
[mysqld]
**slow_query_log**=1
**long_query_time**=10 # 设置默认超过时间记录慢查询日志
**log-slow-queries** [= DIR/[filename] ]
**log_queries_not_using_indexes**=on # 未使用索引的查询语句是否记录
通过命令行直接定义或者修改满查询日志时间
~~~
mysql> SHOW GLOBAL VARIABLES LIKE 'long%';
+-----------------+----------+
| Variable_name | Value |
+-----------------+----------+
| long_query_time | 1.000000 |
+-----------------+----------+
mysql> set global long_query_time=10;
Query OK, 0 rows affected (0.00 sec)
mysql> SHOW GLOBAL VARIABLES LIKE 'long%';
+-----------------+-----------+
| Variable_name | Value |
+-----------------+-----------+
| long_query_time | 10.000000 |
+-----------------+-----------+
1 row in set (0.00 sec)
~~~
### 二进制日志
二进制日志中常用的定义格式:
>
1、语句(statement):默认的记录格式;
2、行(row):定义的并非数据本身而是这一行的数据是什么;
3、混合模式(mixed):交替使用行和语句、由mysql服务器自行判断。
其中基于行的定义格式数据量会大一些但是可以保证数据的精确性。
更多详情参考:[MySQL服务日志](http://www.cnblogs.com/wangkongming/p/3684950.html)(待梳理)
- 写在前面
- MySQL的使用
- MySQL多表同时删除方案
- MySQL跨表、多表更新SQL语句总结
- MySQL存储引擎
- 安装
- 常规方式编译安装MySQL
- 采用cmake方式编译安装MySQL
- 使用rpm包安装MySQL
- 使用yum方式安装MySQL
- 采用二进制方式免编译安装MySQL
- 多实例的安装
- 什么是多实例
- 多实例的作用、问题以及应用场景
- 多实例安装01【推荐】
- 多实例官方安装方案02
- 启动、用户和权限管理
- 单实例MySQL的启动和关闭的方法
- 设置及修改MySQL root用户密码
- 找回丢失的MySQL root用户密码
- 创建MySQL用户及用户权限管理
- 基础命令的操作
- MySQL库和表相关操作
- MySQL中的索引操作
- MySQL常用命令
- MySQL的错误代码
- MySQL复习秘籍
- 备份与恢复
- 备份
- 恢复
- mysqlbinlog命令
- 服务日志
- 主从复制
- 主从复制部署配置问题汇总
- 主从复制读写分离
- 灾难恢复
- 配置phpmyadmin连接多实例MySQL
- 其他相关
- Sphinx实验
- 中文分词技术
- MySQL语句大全
- 用户创建、权限、删除
- 数据库与表显示、创建、删除
- 表复制及备份还原
- 数据库表中数据操作
- 修改表的列与表名
- 修改表中的数据
- 查询表
- 日志
- 批量修改Mysql表引擎为InnoDB的方法
- 数据库抽象层 PDO
- PDO对象常用方法
- PDO 事务处理
- PDO 与 MySQLi 二者效率简单比较
- 大小写敏感性 lower_case_table_names
- CentOS7安装MySQL5.7密码查看与修改