1.mysql explain

https://www.jianshu.com/p/ea3fc71fdc45

2. explain 使用

explain SELECT id FROM t
WHERE STATUS = 'CHECKED' AND EXPENSE_BILL_NO = 'BF_20191112_20191118_PAY_1'
ORDER BY GMT_CREATE DESC

image.png 

id                       :表示SQL执行的顺序的标识,SQL从大到小的执行。示例中1表示执行的第一条SQL

select_type    :表示select语句的子类型。

type                  :表示访问类型,显示出该查询是通过全表扫描、索引查询等方式查找数据的。

possible_keys :显示查询可能使用了哪些索引,表示该索引可以进行高效地查找,但是列出来的索引对于后续        优化过程可能是没有用的。

key                  : 表示MySQL实际决定使用的键(索引)。如果没有选择索引,键是NULL。

key_len            : 表示key_len列显示MySQL决定使用的键长度。使用的索引的长度。在不损失精确性的情况下,长度越短越好。

ref                    :表示使用哪个列或查询参数 被用来做索引的查询条件

rows                 :表示MySQL认为它执行查询时必须检查的行数。这是一个预估值,值越少说明查询效率越高。

Extra                :表示MySQL查询优化器执行查询的过程中对查询计划的重要补充信息。

3.sql 优化原则

(1)查询的条件区分度是否高。比如性别只有男女两项,区分度不够高,大数据量的情况下

(2)联合索引最左前缀原则

(3)索引不能参与计算 from_unintetime(create_time)='2020-09-11 00:00:00' 改成 create_time=unix_timestamp('2020-09-11 00:00:00')

(4)索引字段类型和查询数据类型必须一致才能走索引

(5)or 不会走索引 

 https://blog.csdn.net/weixin_43291055/article/details/92617039

Logo

永洪科技,致力于打造全球领先的数据技术厂商,具备从数据应用方案咨询、BI、AIGC智能分析、数字孪生、数据资产、数据治理、数据实施的端到端大数据价值服务能力。

更多推荐