explain分析 mysql 1

1.explain

 针对select进行分析,并输出select执行的详细信息,供开发人员针对性的优化。

在select 前面加上 explain即可使用; 

explain select * from prod_main;

执行结果:

2.本次学习首先针对type指标进行优化

type指标逐渐递减:

system>const>eq_ref>ref>fulltext>ref_or_null>index_merge>unique_subquery>index_subquery>range>index>all

本次重点分析4个:

    a.const 如果是根据主键或者唯一索引 ,只取出确定的一行数据。是最快的一种。

    b.range 索引或者主键,在某个范围内。

    c.index 仅仅只有索引被扫描。

    d.all 全表扫描,最垃圾的一种。

3.测试,首先往商品主表prod_main插入一百万数据,下面利用存储过程insert_prod_main

BEGIN
	#Routine body goes here...  set @num = 1;
   set @num = 1;
   while @num <1000000 DO
    
     insert into prod_main(prod_name,prod_classid,prod_intr)values(concat('商        品',@num),'1','商品详情介绍');
     
    set @num = @num+1;
   end while;

END

4.不做任何优化,type为全表扫面

5.优化sql 

设置字段 adddate 为普通索引

sql : 增加order by desc 排序,limit限制条数

explain select * from prod_main ORDER BY prod_adddate desc limit 1,10;

执行效果: 

 

type优化为index

6.更进一步优化

sql :增加where 

type为range

猜你喜欢

转载自blog.csdn.net/a453220542/article/details/81430054