mysql explain insert_简述Mysql Explain 命令

MySQL的EXPLAIN命令用于SQL语句的查询执行计划(QEP)。这条命令的输出结果能够让我们了解MySQL 优化器是如何执行SQL语句的。这条命令并没有提供任何调整建议,但它能够提供重要的信息帮助你做出调优决策。

参考官方文档地址:

为什么用explain . 如果你的页面返回结果很慢,你就需要使用explain去分析你的sql是否需要优化了.

1/ 官方定义

The EXPLAIN statement provides information about how MySQL executes statements:

explain 语句提供 mysql 语句执行信息.

2/ 注意点

1) explain 能分析的语句包括 'SELECT, DELETE, INSERT, REPLACE, and UPDATE

2) explain 可以分析某个mysql的connection Id

3) 使用explain 查看索引的使用 和 表的连接顺序 ,以提高查询速度

4) 如果你有索引,但是没有使用上,你需要ANALYZE TABLE.

补充mysql索引失效的情况.

1 where 条件中有or

2 多列索引不是第一部分

3 like查询以%开头

4 字段类型是字符串,而where条件是数字

5 mysql自己估计全表扫描比索引快的时候(假设数据结果数量已知,可通过索引的count()获取结果集数量,因为索引是根据位置去0(1)读取,所以结果集数量为T则读取T次,全表扫描读取数据Block,假设数据量紧凑存储在N个Block上,全表扫描读取N次,一般在T>N,且达到某个比例的时候,此比例是否可设置有待研究,mysql不使用索引)

SHOW SESSION STATUS LIKE 'Handler_read%'

handler_read_key:这个值越高越好,越高表示使用索引查询到的次数

handler_read_rnd_next:这个值越高,说明查询低效

3/ 输出格式

f859b96e83f635ad01f595231a58c241.png

重点关注:

1 key 是否使用索引

2 rows 查询返回的结果集数量

3 filtered 过滤的结果.

rows * filtered 得出将要关联的数据条目数量.所以filtered 越小越好,rows 也是越小越好

***

explain connection Id 会分析链接最近一次执行的sql语句. 结果会变动,甚至如果语句不是insert ,select 等操作会报错. show warnings

以上所述是小编给大家介绍的Mysql Explain 命令,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/527778.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

没有varselect这个函数_C++的虚函数,虚析构函数,纯虚函数

修改日期:2020/9/6C的虚函数C的虚函数的特点就是动态绑定,它的意思是动态绑定,在运行的时候,通过引用和指针,可以用基类的类,引用继承该c类的派生类,虽然指针是基类,但实际上运行的是…

mysql数据库初识实训总结_MySQL(数据库)的初识

1.什么是数据库数据库(Database)是按照数据结构来组织、存储和管理数据的仓库2.什么是MySQLMySQL 是最流行的关系型数据库管理系统,在WEB应用方面 MySQL 是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。3.关系数…

jdk1.8要安装什么mysql_Window下安装JDK1.8+Tomcat9.0.27+Mysql5.7.28的教程图解

JDK1.8安装下载打开链接: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html.下拉选择不同jdk版本,图示为window系统下载提示需登录账号可查看这个帖子Oracle账号.安装双击下载的安装包,按提示走就可以安装完成之后…

mysql 实例启动利用binlog恢复_mysql利用binlog进行数据恢复

mysql利用binlog进行数据恢复最近线上误操作了一个数据,由于是直接修改的数据库,所有唯一的恢复方式就在mysql的binlog。binlog使用的是ROW模式,即受影响的每条记录都会生成一个sql。同时利用了binlog基本配置和格式binlog基本配置binlog需要…

php mysql bootstart_PHP MySQL 创建数据库

PHP MySQL 创建数据库数据库存有一个或多个表。你需要 CREATE 权限来创建或删除 MySQL 数据库。使用 MySQLi 和 PDO 创建 MySQL 数据库CREATE DATABASE 语句用于在 MySQL 中创建数据库。在下面的实例中,创建了一个名为 "myDB" 的数据库:实例 (…

.net mysql 类库_(精华)2020年6月27日 C#类库 MySqlHelper(Ado.net数据库封装)

using EFCore.Sharding;using MySql.Data.MySqlClient;using System;using System.Collections.Generic;using System.Data.Common;namespace Core.Util{////// MySql数据库操作帮助类///public class MySqlHelper : DbHelper{#region 构造函数////// 构造函数////// 完整连接字…

ironpython console怎么用_如何在表單中插入ironpython控制台?

I want to make a winform by C#, and add a ironpython console window in it, like a multiline textbox. So I can write python program into it to do some operations in my Winform software.我想通過C#進行winform,並在其中添加一個ironpython控…

mysql修改客户端编码命令_mysql命令行修改字符编码

1、修改数据库字符编码mysql> alter database mydb character set utf8 ;2、创建数据库时,指定数据库的字符编码mysql> create database mydb character set utf8 ;3、查看mysql数据库的字符编码mysql> show variables like character%; //查询当前mysql数…

mysql 查看运行级别_运行级别及进程

/etc/rc.d/rc.sysinit由init进程调用执行完成设置网络、主机名、加载文件系统等初始化工作/etc/rc.d/rc脚本文件由init进程调用执行根据指定的运行级别, 加载或终止相应的系统服务/etc/rc.local脚本文件由rc脚本调用执行保存用户定义的需开机后自动执行的命令默认的7种运行级别…

中班机器人歌曲_机器人幼儿园大班音乐教案

机器人幼儿园大班音乐教案作为一名无私奉献的老师,有必要进行细致的教案准备工作,教案是教学活动的总的组织纲领和行动方案。那么问题来了,教案应该怎么写?以下是小编为大家收集的机器人幼儿园大班音乐教案,供大家参考…

java 主线程等待_Java实现主线程等待子线程

本文介绍两种主线程等待子线程的实现方式,以5个子线程来说明:1、使用Thread的join()方法,join()方法会阻塞主线程继续向下执行。2、使用Java.util.concurrent中的CountDownLatch,是一个倒数计数器。初始化时先设置一个倒数计数初始…

java四个权限_java四种访问权限

引言Java中的访问权限理解起来不难,但完全掌握却不容易,特别是4种访问权限并不是任何时候都可以使用。下面整理一下,在什么情况下,有哪些访问权限可以允许选择。一、访问权限简介访问权限控制: 指的是本类及本类内部的…

java map removeall_Java删除Map中元素

前言&#xff1a;关于Java从Map中删除元素的使用&#xff0c;可以使用删除单个元素的事实Map.remove。示例&#xff1a;初始化一个Map对象Map map new HashMap<>();map.put(1, "value 1");map.put(2, "value 2");map.put(3, "value 3");m…

java中0x07_JAVA里0X00的表示

相信很多针对报文进行组织与拆解&#xff0c;在C、C里有memset的功能很容易完成字符串里填充0x00&#xff0c;在java里同样很容易做到&#xff0c;则是用\000,八进制来表示。测试代码如下&#xff1a;package j8583.example;import java.util.ArrayList;import java.util.Array…

java nio集群_java – Hazelcast:连接到远程集群

14:58:26.717 [main] INFO c.m.b.p.s.s.HazelcastCacheClient – creatingnew Hazelcast instance14:58:26.748 [main] INFO com.hazelcast.core.LifecycleService –HazelcastClient[hz.client_0_dev][3.2.1] is STARTING14:58:27.029 [main] INFO com.hazelcast.core.Lifecyc…

微信第三方扫描登录 java源代码_微信开放平台基于网站应用授权登录源码(java)...

1. 第三方发起微信授权登录请求&#xff0c;微信用户允许授权第三方应用后&#xff0c;微信会拉起应用或重定向到第三方网站&#xff0c;并且带上授权临时票据code参数&#xff1b;2. 通过code参数加上AppID和AppSecret等&#xff0c;通过API换取access_token&#xff1b;3. 通…

java性能优化方案_Java性能优化要点

Java性能优化要点本文介绍如何通过以下几点从Java中挤压出性能&#xff0c;该大部分经验来自于Netty作者。JITJava即时编译器当Java执行runtime环境时&#xff0c;每遇到一个新的类&#xff0c;JIT编译器在此时就会针对这个类别进行编译(compile)被优化成相当精简的原生型指令码…

java注解 源码_详解Java注解教程及自定义注解

详解Java注解教程及自定义注解更新时间&#xff1a;2016-02-26 11:47:06 作者&#xff1a;佚名 我要评论(0)Java注解提供了关于代码的一些信息&#xff0c;但并不直接作用于它所注解的代码内容。在这个教程当中&#xff0c;我们将学习Java的注解&#xff0c;如何定制注解&…

jpa mysql存储过程_spring data jpa 如何调用mysql存储过程?

A:首先定义存储过程依赖的jpa表&#xff1a;EntityTable(name"evenmngt_childthingtree_tmp")//数据库中的表名NamedStoredProcedureQuery(name "getChildTree1", procedureName "eventmngt.getChildTree1",parameters {StoredProcedureParam…

pdm 导入mysql 注释_PowerDesigner逆向导入MYSQL数据库并显示中文注释(转载)

我想直观的查看数据库表之间的关系与中文注释&#xff0c;发现Navicat Premium下的表模型功能&#xff0c;并没有注释功能:用起来不是很方便。所有想到了用PowerDesigner来逆向MYSQL中的表&#xff0c;并显示中文注释。一、安装ODBC驱动当前环境&#xff1a;window 10 64bitPow…