您的位置:首页 > 数据库 > MySQL

mysql 慢日志开启 及explain 分析sql语句

2015-08-31 16:10 561 查看
查看当前数据库是否开启了日志:

mysql > show variables like 'log_%';

mysql 的日志类型有以下几种:

+---------------------------------+-------------------------------------+

| Variable_name | Value |

+---------------------------------+-------------------------------------+

| log_bin | OFF |

| log_bin_trust_function_creators | OFF |

| log_error | D:\phpservice\mysql\Data\1.err |

| log_output | FILE |

| log_queries_not_using_indexes | OFF |

| log_slave_updates | OFF |

| log_slow_queries | OFF |

| log_warnings | 1 |

+---------------------------------+-------------------------------------+



日志文件 记入文件中的信息类型

错误日志 : 记录启动、运行或停止时出现的问题。

查询日志 : 记录建立的客户端连接和执行的语句。

二进制日志: 记录所有更改数据的语句。主要用于复制和即时点恢复。

慢日志 :记录所有执行时间超过long_query_time秒的所有查询或不使用索引的查询。

事务日志: 记录InnoDB等支持事务的存储引擎执行事务时产生的日志。

默认情况下,所有日志创建于mysqld数据目录中。通过刷新日志,你可以强制 mysqld来关闭和重新打开日志文件(或者在某些情况下切换到一个新的日志)。当你执行一个FLUSH LOGS语句或执行mysqladmin flush-logs或mysqladmin refresh时,出现日志刷新。如果你正使用MySQL复制功能,从复制服务器将维护更多日志文件,被称为接替日志。

默 认情况下,所有日志创建于mysqld数据目录中。

拓展:http://www.cnblogs.com/wangkongming/p/3684950.html

mysql 慢日志开启

在默认情况下,mysql是不会记录慢查询,需要我们指定启用慢查询日志,才会把执行速度慢的sql语句放入到日志.

启动方式:

{%bin%}/mysqld.exe --safe-mode --slow-query-log
注:在默认情况下mysql认为慢查询的时间10s,为了看效果,我们把这个慢查询时间调整为1s

调整慢查询时间:

① 先查看



① 修改



若有慢sql语句。这会在慢日志中出现以下情况:



explain的用法

基本用法

mysql>explain select语句

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: