sql自学笔记(十五)——MySQL8.0版本的新特性(五)
2019-05-03 本文已影响0人
itczt
降序索引
- MySQL8.0开始支持降序索引(descending index)
- 只有InnoDB存储引擎支持降序索引,只支持BTREE降序索引
- MySQL8.0不再对GROUP BY操作进行隐式排序
先看一下在5.7当中执行的语法
创建一下表和索引
create table t2(c1 inr,c2 int,index idx1(c1 asc,c2 desc));
显示一下
show create table t2\G

如图所示虽然在语法中c1是升序,c2是降序,实际上创建的索引中它没有相应的信息,它都是默认的升序。
查询优化器对降序索引的使用情况
1.默认生成几条数据
insert into t2(c1,c2) values(1,100),(2,200),(3,150),(4,50);
显示一下
select * from t2;

查询优化器对降序索引的使用情况
explain select * from t2 orcler by c1 desc,c2;

执行相反查询c1降序,c2升序
explain select * from t2 by c1 desc,c2;

如图所示,它使用了反向索引扫描
对group by不再进行默认操作
select count(*),c2 from t2 group by c2;
在MySQL5.7中默认排序

而在新版本中要想使用group by排序
select count(*),c2 from to group by c2 order by c2;
