mysql 开启慢查询、二进制日志

  对于SQL调优,其中关键的一点是开启慢查询日志。MYSQL会记录下查询超过指定时间的语句,通过定位分析性能的瓶颈,

才能更好的优化数据库系统的性能。

  MYSQL慢查询日志默认是关闭的。需要通过在 /etc/my.cnf 配置中添加如下参数:

#开启慢查询日志
slow_query_log=ON
#慢查询的阈值,默认为10秒,最小为0,精度可以到微妙
long_query_time=3
#日志记录文件如果没有给出file_name值, 默认为主机名,后缀为-slow.log。如果给出了文件名,但不是绝对路径名,文件则写入数据目录。
slow_query_log_file=slow_query.log

  配置修改后,重启数据库

# service mysqld restart

  

  验证开启慢日志查询:

  第一种直接通过变量来确认是否开启。

mysql> show variables like 'slow_query%';
+---------------------+----------------+
| Variable_name       | Value          |
+---------------------+----------------+
| slow_query_log      | ON             |
| slow_query_log_file | slow_query.log |
+---------------------+----------------+
2 rows in set (0.00 sec)

mysql> show variables like 'slow_query_time%';
Empty set (0.00 sec)

mysql> show variables like 'long_query_time%';
+-----------------+----------+
| Variable_name   | Value    |
+-----------------+----------+
| long_query_time | 3.000000 |
+-----------------+----------+
1 row in set (0.00 sec)

  

  第二种是直接通过查看慢日志文件内容来确认:

  执行超过3s的查询语句。

 

  查看慢查询日志内容:

   这样我们就能通过慢日志拿到SQL,从而再对SQL进行索引排查,进行SQL优化。

  二进制文件:记录数据变化

  binlog记录了数据库所有的ddl语句和dml语句,但不包括select语句内容,语句以事件的形式保存,描
述了数据的变更顺序,binlog还包括了每个更新语句的执行时间信息。如果是DDL语句,则直接记录到
binlog日志,而DML语句,必须通过事务提交才能记录到binlog日志中。 生产中才开启二进制日志。

  主要作用:数据备份、恢复、主从

  开启二进制日志:

  在 /etc/my.cnf 配置中添加如下配置:

log-bin=mysql-bin

  执行 service mysqld restart 重启数据库。查看数据库目录

   出现了mysql-bin文件,后面的序号是备份次数,文件会在数据库备份、重启时,都会为当前的数据进行备份。

比如我再执行多两次重启数据库,会生成这样的文件。

 

原文地址:https://www.cnblogs.com/process-h/p/14069530.html