ToB企服应用市场:ToB评测及商务社交产业平台

标题: SQL优化之EXPLAIN执行计划 [打印本页]

作者: 石小疯    时间: 2023-5-31 11:40
标题: SQL优化之EXPLAIN执行计划
前言

从今天开始本系列文章就带各位小伙伴学习数据库技术。数据库技术是Java开发中必不可少的一部分知识内容。也是非常重要的技术。本系列教程由浅入深, 全面讲解数据库体系。 非常适合零基础的小伙伴来学习。
全文大约 【1965】字,不说废话,只讲可以让你学到技术、明白原理的纯干货!本文带有丰富案例及配图视频,让你更好的理解和运用文中的技术概念,并可以给你带来具有足够启迪的思考...
一. EXPLAIN执行计划分析

EXPLAIN可以帮助开发人员分析SQL问题,EXPLAIN显示了MySQL如何使用使用SQL执行计划,可以帮助开发人员写出更优化的查询语句。使用方法,在select语句前加上EXPLAIN就可以了。
1. 举个例子:

下面是一个最普通的查询语句,用EXPLAIN进行分析演示。
  1. EXPLAIN SELECT * FROM student;
复制代码
结果:

2. 结果的列的说明如下:

id : SELECT识别符。这是SELECT查询序列号。这个不重要。
select_type: 表示SELECT语句的类型。
table: 显示这查询的数据是关于哪张表的。
type: 区间索引,这是重要的列,显示连接使用了何种类型。从最好到最差的连接类型为。
system > const > eq_ref > ref > ref_or_null > index_merge > unique_subquery > index_subquery > range > index > ALL
一般来说,得保证查询至少达到range级别,最好能达到ref。
possible_keys: 指出MySQL能使用哪个索引在该表中找到行。如果是空的,没有相关的索引。这时要提高性能,可通过检验WHERE子句,看是否引用某些字段,或者检查字段不是适合索引。
key: 实际使用到的索引。如果为NULL,则没有使用索引。如果为primary的话,表示使用了主键。
key_len: 最长的索引宽度。如果键是NULL,长度就是NULL。在不损失精确性的情况下,长度越短越好。
ref: 显示使用哪个列或常数与key一起从表中选择行。
rows: 显示MySQL认为它执行查询时必须检查的行数。
Extra: 执行状态说明,该列包含MySQL解决查询的详细信息。
二. 结语

最后在这里对本文核心要点进行总结:

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4