10.什么是慢查询?如何经过慢查询日志优化?

整理自互联网!mysql

摘要:sql

这篇讲讲慢查询。在小伙伴们开发的项目中,对于MySQL排查问题找出性能瓶颈来讲,最容易发现并解决的问题就是MYSQL的慢查询以及没有用索引的查询.数据库

日志就跟人们写的日记同样,记录着过往的事情。可是人的日记是主观的(记本身想记的内容),而数据库的日志是客观的.服务器

根据记录内容分为如下好几种日志:工具

a、错误日志:记录启动、运行或中止mysqld时出现的问题。性能

b、通用日志:记录创建的客户端链接和执行的语句。spa

c、更新日志:记录更改数据的语句。该日志在MySQL 5.1中已再也不使用。3d

d、二进制日志:记录全部更改数据的语句。还用于主从复制。日志

e、慢查询日志:记录全部执行时间超过long_query_time秒的全部查询或不使用索引的查询。blog

f、Innodb日志:innodb redo log

缺省状况下,全部日志建立于mysqld数据目录中。

能够经过刷新日志,来强制mysqld来关闭和从新打开日志文件(或者在某些状况下切换到一个新的日志)。

当你执行一个FLUSH LOGS语句或执行mysqladmin flush-logs或mysqladmin refresh时,则日志被老化。

对于存在MySQL复制的情形下,从复制服务器将维护更多日志文件,被称为接替日志。

此次咱们介绍的就是慢查询日志。何谓慢查询日志?

MySQL会记录下查询超过指定时间的语句,咱们将超过指定时间的SQL语句查询称为慢查询,都记在慢查询日志里.

咱们开启后能够查看到底是哪些语句在慢查询开启慢查询日志.

mysql>show variables like “%slow%”; 查看慢查询配置,没有则在my.cnf中添加,以下

wps2A4F.tmp

分析日志 – mysqldumpslow

分析日志,可用mysql提供的mysqldumpslow,使用很简单,参数可–help查看

wps2A8E.tmp

推荐用分析日志工具 – mysqlsla

wps2A9F.tmp

【说明】

queries total: 总查询次数

unique:去重后的sql数量

sorted by : 输出报表的内容排序最重大的慢sql统计信息, 包括 平均执行时间, 等待锁时间, 结果行的总数, 扫描的行总数.

Count:ql的执行次数及占总的slow log数量的百分比.

Time:执行时间, 包括总时间, 平均时间, 最小, 最大时间, 时间占到总慢sql时间的百分比.

95% of Time:去除最快和最慢的sql, 覆盖率占95%的sql的执行时间.

Lock Time:等待锁的时间.

95% of Lock :95%的慢sql等待锁时间.

Rows sent:结果行统计数量, 包括平均, 最小, 最大数量.

Rows examined:扫描的行数量.

Database:属于哪一个数据库

Users:哪一个用户,IP, 占到全部用户执行的sql百分比

Query abstract:抽象后的sql语句

Query sample:sql语句

相关文章
相关标签/搜索