MySql 使用explain分析查询
今天写了个慢到哭的查询,想用explain分析下执行计划,后来发现explain也是有局限性的:
EXPLAIN不会告诉你关于触发器、存储过程的信息或用户自定义函数对查询的影响情况 •EXPLAIN不考虑各种Cache •EXPLAIN不能显示MySQL在执行查询时所作的优化工作 •部分统计信息是估算的,并非精确值 •EXPALIN只能解释SELECT操作,其他操作要重写为SELECT后查看执行计划
好吧,那我就把存储过程,转换为普通sql进行分析。
id:标识符,select查询的序列号;
select_type:标识select语句的类型,primary表示主查询或最外层的查询语句;DEPENDENT SUBQUERY子查询中的第一个select,取决于外面的查询;
table:查询的表;
type:标识表的连接类型;index标识扫描到了索引树;all表示整表扫描;
possible_key:mysql能使用哪个索引在该表中找到行;
key:查询中实际使用的索引;
key_len:mysql选择的索引字段按字节计算的长度。
rows:显示mysql在表中进行查询时必须检查的行数;
extra:该列mysql在处理查询时候的详细信息;
与explain类似的关键字 :DESCRIBE 简写:DESC;
分析我的存储过程结论:我建的索引基本没用上,还是整表的扫描;准备将聚集索引分开;优化下嵌套查询;
结尾彩蛋:
MySql 使用explain分析查询的更多相关文章
- MySQL的explain分析sql语句
explain分析查询 使用 EXPLAIN 关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的.这可以帮你分析你的查询语句或是表结构的性能瓶颈.通过explain命 ...
- explain分析查询
参考以下文章,在此非常感谢原作者 explain分析查询
- MYSQL学习笔记 (六)explain分析查询
使用EXPLAIN可以模拟优化器执行SQL语句,从而知道MYSQL是如何处理你的SQL,从而分析查询语句或者表结构的瓶颈.
- mysql:explain分析sql
对于执行较慢的sql,可以使用explain命令查看这些sql的执行计划.查看该SQL语句有没有使用上了索引,有没有做全表扫描,这都可以通过explain命令来查看 mysql> explain ...
- MongoDB 索引 explain 分析查询速度
一.索引基础索引是对数据库表中一列或多列的值进行排序的一种结构,可以让我们查询数据库变得更快.MongoDB 的索引几乎与传统的关系型数据库一模一样,这其中也包括一些基本的查询优化技巧.下面是创建索引 ...
- MongoDB学习day03--索引和explain分析查询速度
一.索引基础 db.user.ensureIndex({"username":1}) 创建索引,username为key,数字 1 表示 username 键的索引按升序存储, - ...
- mysql优化:explain分析sql语句执行效率
Explain命令在解决数据库性能上是第一推荐使用命令,大部分的性能问题可以通过此命令来简单的解决,Explain可以用来查看SQL语句的执行效 果,可以帮助选择更好的索引和优化查询语句,写出更好的优 ...
- Explain分析查询语句
表的读取顺序 读取操作的类型 可用索引,实际使用的索引 表之间的引用 每张表多少行被优化器查询 索引的长度 EXPLAIN字段解释: ØTable:显示这一行的数据是关于哪张表的 Øpossible ...
- mysql优化–explain分析sql语句执行效率
Explain命令在解决数据库性能上是第一推荐使用命令,大部分的性能问题可以通过此命令来简单的解决,Explain可以用来查看SQL语句的执行效 果,可以帮助选择更好的索引和优化查询语句,写出更好的优 ...
随机推荐
- PL/SQL 编程(二)
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/u011685627/article/details/26299399 1 For循环 ...
- 程序中实现两个DataTable的Left Join效果(修改了,网上第二个DataTable为空,所处的异常)
public static DataTable Join(DataTable First, DataTable Second, DataColumn[] FJC, DataColumn[] SJC) ...
- Mybatis的mapper代理开发方法
一.开发规范 1.映射文件中的namespase等于mapper接口类路径 2.statement的id与mapper中的方法名一致 3.让mapper的接口方法输入参数类型与statement中的p ...
- c#类中字段和方法中变量的声明问题
字段和局部变量的作用域冲突 某些情况下可以区分名称相同,作用域相同的两个标识符.原因是C#在变量之间有一个基本的区分,它把在类级别声明的变量看作 字段,而把在方法中声明的变量看作局部变量. class ...
- n维向量旋转(循环移位)——学习《编程珠玑》
问题: 将一个n元一维向量向左旋转i个位置.例如,当n=8且i=3时,向量abcdefgh旋转为defghabc. 简单的代码使用一个n元的中间向量在n步内完成该工作. 你能否仅使用数十个额外字节的存 ...
- The Linux Kernel
- Winodws SNMP服务安装和配置(Windows 2003 & 2008 R2)
简单网络管理协议SNMP服务起着代理的作用,它会收集可以向SNMP管理站或控制台报告的信息.您可以使用SNMP服务来收集数据,并且在整个公司网络范围内管理基于Windows Server 2003.M ...
- Swift _ OC _ 混编
Swift _ OC _ 混编 在OC环境下使用Swift. GitHub源码
- tomcat启动startup.bat一闪而过【亲测有效】
遇到很多次运行startup.bat后,一个窗口一闪而过的问题,但是从来没去纠正怎样修改配置才是正确的,现在从网上查阅的资料整理如下:tomcat在启动时,会读取环境变量的信息,需要一个CATALIN ...
- 竞赛题解 - NOIP2018 保卫王国
\(\mathcal{NOIP2018}\) 保卫王国 - 竞赛题解 按某一个炒鸡dalao名曰 taotao 的话说: \(\ \ \ \ \ \ \ \ \ "一道sb倍增题" ...