慢SQL日志简述

通过命令和查看日志文件的方式直接查看mysql服务器的慢sql

参数配置

参数作用slow_query_log是否启用

slow_query_log_file日志文件

long_query_time慢sql阈值

log_slow_adimin_statements是否记录数据库管理相关的sql

long_queries_not_using_indexes是否记录未使用索引的sql

### 慢日志内容

内容描述

-----------

#Time:2020-09-27T22:27:56.343654Z日志时间

#User@Host:root@huan[127.0.0.1]id:2客户端主机

#Query_time:3.346928 Lock_time:0.000482 Rows_sent:1 Rows_examined:5003427执行时间(s), 锁时间, 返回结果行数, 查询总行数

SET timestamp=1588763242sql执行发生时间

select count(*) from poemsql内容

### 日志分析辅助工具mysqldumpslow

例如:查询最慢的前100条sql

mysqldumpslow -t 100 /var/lib/mysql/slow.log

主要功能是, 统计不同慢sql的

出现次数(Count),

执行最长时间(Time),

累计总耗费时间(Time),

等待锁的时间(Lock),

发送给客户端的行总数(Rows),

扫描的行总数(Rows),

用户以及sql语句本身(抽象了一下格式, 比如 limit 1, 20 用 limit N,N 表示).

索引概述

聚集索引(聚簇索引)

InnoDB表都有一个称为聚集索引的特殊索引(默认主键,没有则是唯一键,都没有则选择隐式的rowid键)

二级索引(非聚簇索引)

所有非聚集索引,都称为二级索引

单列索引

索引只涉及一个列

多列索引(复合索引、联合索引、组合索引)

索引涉及多个列(最多16列)

覆盖索引

它本身不是一种索引,只是查询语句所需要的列被包含在查询条件中的索引里面,直接通过索引查询出结果,不需要回表查询

如:select id from user where id < 100

查询优化器概述

查询优化器的任务是找到执行sql查询的最佳计划,是mysql数据库的一个核心功能模块。根据表、列、索引的详细信息以及sql语句中的条件,多方面来让sql高效的执行。

优化器选择出的执行效率最高的一组操作,称之为查询计划。

查询优化器优化过程:

准备阶段

补全sql(* 转 对应字段)

优化阶段

条件优化(常量传递、等值替换、移除无用条件)

例如:5=5 and a>5 改写为 a>5

(a5 and b=c and a= 5

表依赖关系分析

查看用到的ref所以索引

评估记录扫描数、成本分析

执行计划

id: MySQL Query Optimizer 选定的执行计划中查询的序列号。表示查询中执行 select 子句或操作表的顺序,id值越大优先级越高,越先被执行。id 相同,执行顺序由上至下。

select_type:查询类型,SIMPLE、PRIMARY、UNION、DEPENDENT UNION等。

table:显示这一行的数据是关于哪张表的

type:这是重要的列,显示连接使用了何种类型。从最好到最差的连接类型为const、eq_reg、ref、range、indexhe和all

possible_keys:显示可能应用在这张表中的索引。如果为空,没有可能的索引。可以为相关的域从where语句中选择一个合适的语句

key: 实际使用的索引。如果为null,则没有使用索引。很少的情况下,mysql会选择优化不足的索引。这种情况下,可以在select语句中使用

use index(indexname)来强制使用一个索引或者用ignore index(indexname)来强制mysql忽略索引

key_len:使用的索引的长度。在不损失精确性的情况下,长度越短越好

ref:显示索引的哪一列被使用了,如果可能的话,是一个常数

rows:mysql认为必须检查的用来返回请求数据的行数

extra:关于mysql如何解析查询的额外信息。

mysql 非等值条件 索引_慢SQL简述与定位相关推荐

  1. mysql 非等值条件 索引_mysql 索引学习--多条件等值查询,顺序不同也能应用联合索引啦...

    以前学习这一块的时候,是说:假设建立了联合索引a+b,那么查询语句也一定要是这个顺序才能应用该索引. 那么实际是怎样呢,经过mysql这么多次版本升级,相信mysql已经给我们做了某些优化. 下面是我 ...

  2. mysql非主键索引_主键索引和非主键索引的区别

    1. 什么是最左前缀原则? 以下回答全部是基于MySQL的InnoDB引擎 例如对于下面这一张表 如果我们按照 name 字段来建立索引的话,采用B+树的结构,大概的索引结构如下 如果我们要进行模糊查 ...

  3. mysql非主键索引_主键索引和非主键索引解析

    1. 什么是最左前缀原则? 以下回答全部是基于MySQL的InnoDB引擎 例如对于下面这一张表 如果我们按照 name 字段来建立索引的话,采用B+树的结构,大概的索引结构如下 如果我们要进行模糊查 ...

  4. 面试mysql中怎么创建索引_阿里面试:MySQL如何设计索引更高效?

    有情怀,有干货,微信搜索[三太子敖丙]关注这个不一样的程序员. 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试完整考点.资料以及我的系列文章. ...

  5. mysql哪些字段适合索引_(转)Mysql哪些字段适合建立索引

    简单梳理如下:1) 事务支持 MyISAM不支持事务,而InnoDB支持.InnoDB的AUTOCOMMIT默认是打开的,即每条SQL语句会默认被封装成一个事务,自动提交,这样会影响速度,所以最好是把 ...

  6. mysql pt工具 加索引_[转]MySQL中如何为连接添加索引

    SELECT * FROM tblA, tblB, tblC WHERE tblA.col1 = tblB.col1 AND tblA.col2 = tblC.col1; explain的结果如下: ...

  7. mysql生产环境加索引_【生产篇】_MySQL环境下如何查看基于表的索引定义

    [引言] 今天中午项目组来一需求,欲在MySQL环境的某张表下创建几个BTREE索引.要创建索引,首先需要了解基表的表结构,以及已经包含的索引.Oracle的表结构大家都很熟悉,但MySQL表结构和已 ...

  8. mysql 主键 聚集索引_主键索引就是聚集索引吗?

    这个问题很刁钻! 答案是错的. 的确在mysql数据库innodb引擎里面,主键的确就是聚集索引. 但是myisam引擎里面主键也不是聚集索引. 另外在sql server中还可以显示的指定聚集索引. ...

  9. mysql判断是否建立索引_判断mysql中列是否要添加索引的标准

    最近再看mysql技术内部+innoDb存储引擎一书,书中第五章-索引与算法中讲到 查看表的索引信息中的一些参数含义,特作记录 show index from table_name ##  查看该表的 ...

最新文章

  1. 取代MybatisPlus?阿里推出了新 ORM 框架!(两者对比参考)
  2. 解决linux病毒导致带宽跑满的解决过程 ,可以参考参考
  3. WebGL 浏览器函数
  4. golang应用部署
  5. Tomcat 内存与优化篇
  6. Ubuntu Apache 服务之 PHP 配置
  7. 生成模型和判别模型对比
  8. 与众不同 windows phone (36) - 8.0 新的瓷贴: FlipTile, CycleTile, IconicTile
  9. sharepoint页面嵌入_在其他系统Iframe中显示SharePoint 页面
  10. freetype字体位图转距离场_关于freetype的移植和其官方demos的使用总结
  11. ORA-00091错误的解决方式
  12. apache beam入门之编码Coder相关
  13. 高清卫星影像查看方法
  14. 浏览器加载网页资源的原理
  15. 远程终端工具Xshell、Xftp传输工具、VMware 、CentOS7的下载、安装和使用教程(完整版)
  16. 使用 Bud and Go 构建全栈应用程序
  17. 2022江苏最新中级消防设施操作员模拟考试试题及答案
  18. 菜鸟学习SpringBoot——(一)构建一个简单的单体Springboot项目
  19. 《推荐系统实践》 第七章 推荐系统实例 读书笔记
  20. Moonbeam与HydraDX的集成为Polkadot带来流动性

热门文章

  1. python模式匹配算法_详解Python 最短匹配模式
  2. for循环利用可迭代对象与迭代器完成工作的本质
  3. 知识图谱入门知识(三)词性标注
  4. WSDM Cup 2020检索排序评测任务第一名经验总结
  5. 会议交流 | IJCKG 2021 日程表(北京时间)
  6. 论文浅尝 - KDD2020 | 真实世界超图的结构模式和生成模型
  7. 会议 | 2019 全国知识图谱与语义大会 (CCKS 2019)
  8. 论文浅尝 | 基于复杂查询图编码的知识库问答
  9. Android官方开发文档Training系列课程中文版:布局性能优化之布局复用
  10. 简单讲述一下Intent的传值过程