mysql 查看解释计划的两种方式 2025434编辑
Heaven helps those who help themselves
资深码农+深耕理财=财富自由
欢迎关注
资深码农+深耕理财=财富自由
欢迎关注

mysql 查看解释计划的两种方式
Created by Marydon on 2022-02-13 20:19
1.情景展示
在进行SQL编写的过程中,我们为了提高SQL的执行效率,通常会使用解释计划,来看看当前SQL还有没有优化的空间。
查看explain的方式有两种。
2.expalin+SQL语句
语法:explain + format=json + SQL语句
EXPLAIN format = json SELECT t.town_code, count( 1 ) c FROM town_village_mapping t GROUP BY t.town_code;
将其当做SQL语句来执行即可;
将输出结果复制出来即可查看。
"using_temporary_table": true,表示:该SQL使用了内部临时表;
"access_type": "ALL",表示:该SQL使用了全表扫描。
3.Navicat解释计划
新建一个查询窗口--》将SQL语句粘贴进去--》点击“解释”即可。
type:all,表示全表扫描;
extra:using temporary,表示使用了内部临时表。
2022年4月28日10:40:48
4.select_type
select_type的类型有哪些?
select_type 类型 | 含义 |
SIMPLE | 简单的 select 查询,查询中不包含子查询或者UNION |
PRIMARY | 查询中若包含任何复杂的子部分,最外层查询则被标记为Primary |
SUBQUERY | 在SELECT或WHERE列表中包含了子查询 |
DEPENDENT SUBQUERY | 在SELECT或WHERE列表中包含了子查询,子查询基于外层 |
UNCACHEABLE SUBQUREY | 无法被缓存的子查询 |
DERIVED | 在FROM列表中包含的子查询被标记为DERIVED(衍生);MySQL会递归执行这些子查询, 把结果放在临时表里。 |
UNION | 若第二个SELECT出现在UNION之后,则被标记为UNION;若UNION包含在FROM子句的子查询中,外层SELECT将被标记为:DERIVED。 |
UNION RESULT | 从UNION表获取结果的SELECT |
SQL语句实际执行先后顺序:
From → On → Join → Where → Group by → Having → Select → Distinct → Union → Order by → Limit
与君共勉:最实用的自律是攒钱,最养眼的自律是健身,最健康的自律是早睡,最改变气质的自律是看书,最好的自律是经济独立 。
您的一个点赞,一句留言,一次打赏,就是博主创作的动力源泉!
↓↓↓↓↓↓写的不错,对你有帮助?赏博主一口饭吧↓↓↓↓↓↓
本文来自博客园,作者:Marydon,转载请注明原文链接:https://www.cnblogs.com/Marydon20170307/p/15890247.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~