什么是慢查询?如何通过慢查询日志优化?
日志就跟人们写的日记一样,记录着过往的事情。但是人的日记是主观的(记自己想记的内容),而数据库的日志是客观的,根据记录内容分为以下好几种日志:
a、错误日志:记录启动、运行或停止mysqld时出现的问题。
b、通用日志:记录建立的客户端连接和执行的语句。
c、更新日志:记录更改数据的语句。该日志在MySQL 5.1中已不再使用。
d、二进制日志:记录所有更改数据的语句。还用于复制。
e、慢查询日志:记录所有执行时间超过long_query_time秒的所有查询或不使用索引的查询。
f、Innodb日志:innodb redo log
缺省情况下,所有日志创建于mysqld数据目录中。
可以通过刷新日志,来强制mysqld来关闭和重新打开日志文件(或者在某些情况下切换到一个新的日志)。
当你执行一个FLUSH LOGS语句或执行mysqladmin flush-logs或mysqladmin refresh时,则日志被老化。
对于存在MySQL复制的情形下,从复制服务器将维护更多日志文件,被称为接替日志。
这次我们介绍的就是慢查询日志。何谓慢查询日志?MySQL会记录下查询超过指定时间的语句,我们将超过指定时间的SQL语句查询称为慢查询,都记在慢查询日志里,我们开启后可以查看究竟是哪些语句在慢查询
开启慢查询日志
查看慢查询配置,没有则在my.cnf中添加
mysql> show variables like '%slow%';
+---------------------+---------------------------------------------------------------------+
| Variable_name | Value |
+---------------------+---------------------------------------------------------------------+
| log_slow_queries | OFF |
| slow_launch_time | 2 |
| slow_query_log | OFF |
| slow_query_log_file | C:\ProgramData\MySQL\MySQL Server 5.5\Data\SZVY2AWX5511361-slow.log |
+---------------------+---------------------------------------------------------------------+
4 rows in set
分析日志 – mysqldumpslow
分析日志,可用mysql提供的mysqldumpslow,使用很简单,参数可–help查看
推荐用分析日志工具 – mysqlsla
【说明】
queries total: 总查询次数 unique:去重后的sql数量
sorted by : 输出报表的内容排序
最重大的慢sql统计信息, 包括 平均执行时间, 等待锁时间, 结果行的总数, 扫描的行总数.
Count, sql的执行次数及占总的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语句
转载于:https://www.cnblogs.com/xyhero/p/40858bdec581108896159c8f9a2d05f9.html
什么是慢查询?如何通过慢查询日志优化?相关推荐
- hibernate中的hql查询语句list查询所有与iterate查询所有的区别
hibernate中的hql查询语句list查询所有与iterate查询所有的区别 list查询所有: 01,会立即产生一条select语句1select查询出来的所有语句都会被session管理, ...
- java中的分页 效率考虑_面试官:数据量很大,分页查询很慢,有什么优化方案?...
当需要从数据库查询的表有上万条记录的时候,一次性查询所有结果会变得很慢,特别是随着数据量的增加特别明显,这时需要使用分页查询.对于数据库分页查询,也有很多种方法和优化的点. 下面简单说一下我知道的一些 ...
- MyBatis关联查询、多条件查询
MyBatis关联查询.多条件查询 1.一对一查询 任务需求; 根据班级的信息查询出教师的相关信息 1.数据库表的设计 班级表: 教师表: 2.实体类的设计 班级表: public class Cla ...
- mysql查询解析过程_MySQL查询执行过程详解
查询是用户通过设置某些查询条件,从表或其他查询中选取全部或者部分数据,以表的形式显示数据供用户浏览.查询是一个独立的.功能强大的.具有计算功能和条件检索功能的数据库对象.MySQL数据库中,MySQL ...
- 面试官扎心一问:数据量很大,分页查询很慢,有什么优化方案?
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 来源:cnblogs.com/youyoui/p/7851007. ...
- 查询所有张姓同学学号6_只需简单几步 做出属于老师自己的专属成绩查询表格 方便家长查询...
今天我们来动手自制一个专属的.简单又实用的查询表格吧!(查询成绩.工资等都是可以的哦,原理是一样滴) 先来看看我们今天需要达到的效果: 输入正确的姓名以及学号就可以查询相应的成绩,如果输入不对应的学号 ...
- 22021年江苏高考成绩查询,江苏高考成绩查询系统
江苏高考成绩查询系统24日20:00开通,出国留学高考网为大家提供2018江苏高考成绩查询系统已开通:http://gkcx.jseea.cn/,更多高考资讯请关注我们网站的更新! 点击下面图片即可查 ...
- ORM单表查询,跨表查询,分组查询
ORM单表查询,跨表查询,分组查询 单表查询之下划线 models.Tb1.objects.filter(id__lt=10, id__gt=1) # 获取id大于1 且 小于10的值models.T ...
- golang mysql多表查询_MySQL多表查询
一 多表连接查询 #重点:外链接语法 SELECT 字段列表 FROM 表1 INNER|LEFT|RIGHT JOIN 表2 ON 表1.字段= 表2.字段; #建表 create table de ...
- .NET应用架构设计—面向查询服务的参数化查询设计(分解业务点,单独配置各自的数据查询契约)...
阅读目录: 1.背景介绍 2.对业务功能点进行逻辑划分(如:A.B.C分别三个业务点) 2.1.配置映射关系,对业务点配置查询契约(构造VS插件方便生成查询契约) 2.2.将配置好的映射策略文件放在调 ...
最新文章
- Ruby Metaprogramming
- 手把手教你如何进行FileZilla的安装
- cnblogs正式启用
- IOS笔记 本地化多语言支持
- [IDEA中SSM整合,前端页面jsp] tomcat一开始访问jsp页面就报404错误
- PCB工程师的7个好习惯
- html怎么从左到右设置颜色,css3文字颜色从左到右动画
- OpenGL ES 2 o 初探
- 100%抄袭!ICLR 2022投稿论文剽窃两篇顶会,程序主席放「实锤」严词拒稿!
- 连续型随机变量量函数的期望
- 分类、回归和聚类辨析
- ubuntu 9.10安装sopcast gmlive 成功(带文件下载)
- Nitrux安装JDK-10(Linux通用)教程
- MAE源代码理解 part2 : 预训练调试
- MySQL面试夺命连环27问
- linux 学习决心书
- 【CSS】关于 z-index,你可能一直存在误区
- NLP学习笔记(四) Seq2Seq基本介绍
- 01_Dive_into_python (reading note)
- java中synchronized锁的升级(偏向锁、轻量级锁及重量级锁)
热门文章
- 论文阅读(2)--Picking Deep Filter Responses for Fine-grained Image Recognition
- Java学习笔记之基础应用(2015.3.21)
- mysql主键外键_MySQL主键和外键使用及说明
- 接口测试实例(jmeter)
- C++ 判断系统大小字节序
- 被引用的外部JS存在window.onload时,判断当前页面是否已存在window.onload,并进行相应处理...
- lucene,lucene.net学习教程
- 批量下载baidu音乐主页的歌曲
- 博客堂怎么连个搜索功能都没有
- PMP读书笔记(第13章)