索引优化之Explain 及慢查询日志
索引:本质是数据结构,简单理解为:排好序的快速查找数据结构,以索引文件的形式存储在磁盘中。
目的:提高数据查询的效率,优化查询性能,就像书的目录一样。
优势:提高检索效率,降低IO成本;排好序的表,降低CPU的消耗
劣势:索引实际也是一张表,该表保存了主键与索引字段,并指向实体表的记录,占用空间;降低更新表的速度(改数据表本身,也需要修改索引);花时间研究建立最优秀的索引。
索引优化分析主要包括几个部分,其中对Explain关键字进行详细了解。
Explain关键字:使用Explain 关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的,分析你的查询语句或是表结构的性能瓶颈。
Explain能干嘛:表的读取顺序、数据读取操作的操作类型、哪些索引可以使用、哪些索引被实际使用、表之间的引用、每张表有多少行被优化器查询。
Explain +SQL语句计划执行包含的信息:id |select_type |table |patitions |type |possible_keys |key |key_len |ref |rows |filtered |extra|


二、查询截取分析主要包括5个部分:查询优化、慢日志查询、批量数据脚本、show profile、全局查询日志等信息,这里主要了解了2部分。
1、查询优化:永远小表驱动大表;Order by ;Group by
2、慢日志查询
图表里面主要包括是什么、怎么玩、日志分析工具,从左往右进行查看。

慢查询日志:Mysql提供的一种日志记录,运行时间超过long_querry_time值得SQL,会被记录到慢查询日志中。long_querry_time默认等于10s.
慢日志具体操作代码如下:
慢日志查询
SHOW VARIABLES LIKE 'long_query_time%';#查看慢查询的时间阈值,默认显示为10S SHOW VARIABLES LIKE '%slow_query_log%';#查看是否开启 set global slow_query_log=1; #设置为1,开启慢查询日志 set global long_query_time=0.001;#设置慢查询的时间为0.001,超过0.001就显示为慢查询 select * from sleep(1); #睡眠1s show global status like '%Slow_queries';#查询慢查询的条数,需要优化的条数 mysqldumpslow -s r -t /var/lib/mysql/RMT01-slow.log;#路径就是查询是否开启中show_query_log_file的文件路径

索引优化之Explain 及慢查询日志的更多相关文章
- python mysql索引 优化神器explain 慢查询
##############总结########## 数据库中专门帮助用户快速找到数据的一种数据结构 类似于字典的目录的索引 索引的作用:约束和加速查找 工作原理: b+树形结构 最上层是树根,中间是 ...
- MySQL:explain 和 慢查询日志
1. 执行SQL时显示执行情况 explain + SQL语句 2. 强制使用索引 select * from t force index (a) where a between 1 ...
- MySQL索引优化,explain详细讲解
前言:这篇文章主要讲 explain 如何使用,还有 explain 各种参数概念,之后会讲优化 一.Explain 用法 模拟Mysql优化器是如何执行SQL查询语句的,从而知道Mysql是如何处理 ...
- mysql索引优化及explain关键字段解释
一.explain关键字解释 1.id MySQL QueryOptimizer 选定的执行计划中查询的序列号,表示查询中执行select 子句或操作表的顺序.id 值越大优先级越高,越先被执行.id ...
- MySql5.5 SQL优化 慢查询日志存储
一.MySql的慢查询日志的开启和存储 1.查看是否把没有使用索引的SQL记录到慢查询日志中,查看 log_queries_not_using_indexes 变量; show VARIABLES L ...
- mysql之 slow log 慢查询日志
一. 相关参数: • slow_query_log ◦ 是否开启慢查询日志 • slow_query_log_file ◦ 慢查询日志文件名, 在 my.cnf 我们已经定义为slow.log,默认是 ...
- MySQL 多列索引优化小记
MySQL 5.6.30 问题背景 由于爬虫抓取的数据不断增多,这两天在不断对数据库以及查询语句进行优化,其中一个表结构如下: CREATE TABLE `newspaper_article` ( ` ...
- mysql 慢查询日志 mysqldumpslow 工具
文章来源:https://www.cnblogs.com/hello-tl/p/9229676.html 1.使用Mysql慢查询日志配置 查看慢查询日志是否开启 OFF关闭 ON开启 show va ...
- mysql性能优化-慢查询分析、优化索引和配置 (慢查询日志,explain,profile)
mysql性能优化-慢查询分析.优化索引和配置 (慢查询日志,explain,profile) 一.优化概述 二.查询与索引优化分析 1性能瓶颈定位 Show命令 慢查询日志 explain分析查询 ...
随机推荐
- reids 入门
1.reids 服务的安装有两种 1.1 exe文件安装,安装完成后,就直接在 "服务"列表中可以查看,并可以停止或启动 1.2 命令行安装:将文件解压至指定文件夹,CMD命令进入 ...
- 内网渗透 day14-empire基础命令的使用
empire的基础操作 目录 1. 建立监听器 2. 设置stagers 3. 用户交互 4. 提权 1. 建立监听器 help 查看帮助命令 listeners 查看监听器 useli ...
- Java—字符流
一.字符流 字符流概述: 在操作过程中字节流可以操作所有数据,操作的文件中有中文字符,并且需要对 中文字符做出处理 二.字符编码表 文字-->(数字):编码."abc".ge ...
- 分布式监控系统之Zabbix基础
1.为什么要使用监控系统? 我们知道一个系统不管怎么讲它都会出故障,我们为了保证线上业务的最大化的可用性,通常我们要给关键业务做高可用:做高可用的目的是为了让故障发生时,能够有一个备用的解决方案,将故 ...
- Android10_原理机制系列_Android消息机制(Handler)详述
概述 在Android中的多进程.多线程中提过,只有主线程(UI线程)可以更新UI,其他线程不可以,所以一般耗时操作放到子线程.子线程可以通过Handler将相关信息通知到主线程. Android的消 ...
- python菜鸟教程学习5: python运算符
算术运算符: 整除符号//:向下取接近商的整数 加+ 减- 乘* 除/ 取余% 幂** 比较运算符: 等于== 不等于!= 大于> 小于< 大于等于>= 小于等于<= 赋值运算 ...
- 修改pycharm中的flask项目名遇到的坑
曾修改过自己的项目名,并在settings中的解释器也更正过来了.然后执行pip list 报错: failed to create process. 解决方法如下: 到你的项目的venv目录下的Sc ...
- 攻克弹唱第八课(吉他演奏的律动与funk音乐)
在本期文章中,笔者将为通过Guitar Pro 7吉他打谱软件与大家分享一下吉他律动与funk音乐的经验. 想必正在看这篇文章的进阶者和高手,都会考虑这样一个问题.我辛辛苦苦练习的大段solo和指弹曲 ...
- 如何正确地安装MathType 7?
作为一名资深的公式编辑器用户,在新版本MathType 7上线的第一时间,已经去体验了一把.那么要如何正确地安装呢?下面就来详细地介绍下它的安装方法. 步骤一 双击下载好的应用程序,就可以开始安装软件 ...
- yii2.0 curl的使用
yii2 curl的使用办法 get: use linslin\yii2\curl; public function actionCurl($value =0) { $url = 'http://ya ...