欢迎来到IDC91站长网!
解决服务器各种技术问题,加微信uecomzsr

MySQL

当前位置: IDC91 > 数据库 > MySQL

详解 MySQL 执行计划

时间:2022-05-30 13:58:58|栏目:MySQL|点击:

EXPLAIN语句提供有关MySQL如何执行语句的信息。EXPLAIN与SELECT,DELETE,INSERT,REPLACE和UPDATE语句一起使用。

EXPLAIN为SELECT语句中使用的每个表返回一行信息。它按照MySQL在处理语句时读取它们的顺序列出了输出中的表。 MySQL使用嵌套循环连接方法解析所有连接。这意味着MySQL从第一个表中读取一行,然后在第二个表,第三个表中找到匹配的行,依此类推。处理完所有表后,MySQL输出所选列,并通过表列表回溯,直到找到一个表,其中有更多匹配的行。从这个表中读取下一行,然后继续处理下一个表。

1. EXPLAIN 输出列

说下几个关键的列:

  • type :连接类型
  • possible_keys :可选的索引
  • key :实际执行时使用的索引
  • ref :ref列显示将哪些列或常量与前面key列中显示的命名的索引进行比较以从表中选择行
  • rows :rows列表示MySQL认为执行查询必须检查的行数

2. 连接类型

连接类型,顺序从最好到最差,依次是:

system

表只有一行。这是const join类型的特例。

const

表最多有一个匹配行,在查询开始时读取。因为只有一行,所以这一行中的列的值可以被优化器的其余部分视为常量。const表非常快,因为它们只被读取一次。

当你用PRIMARY KEY或UNIQUE索引的所有部分与常量值进行比较时,将使用const。

例如,下面的表tbl_name可以被当做const表:

SELECT * FROM tbl_name WHERE primary_key=1;
SELECT * FROM tbl_name WHERE primary_key_part1=1 AND primary_key_part2=2;

上一篇:监控MySQL主从状态的shell脚本

栏    目:MySQL

下一篇:Mysql实现定时清空一张表的旧数据并保留几条数据(推荐)

本文标题:详解 MySQL 执行计划

本文地址:https://idc91.com/shujuku/4079.html

广告投放 | 联系我们 | 免责申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

Copyright © 2023 IDC91.COM 版权所有晋ICP备17006296号