- sql自学笔记(十五)——MySQL8.0版本的新特性(五)
- sql自学笔记(二十五)——MySQL8.0版本的新特性(十五)
- sql自学笔记(十一)——MySQL8.0版本的新特性(一)
- sql自学笔记(十二)——MySQL8.0版本的新特性(二)
- sql自学笔记(十七)——MySQL8.0版本的新特性(七)
- sql自学笔记(十九)——MySQL8.0版本的新特性(九)
- sql自学笔记(十三)——MySQL8.0版本的新特性(三)
- sql自学笔记(十四)——MySQL8.0版本的新特性(四)
- sql自学笔记(十六)——MySQL8.0版本的新特性(六)
- sql自学笔记(十八)——MySQL8.0版本的新特性(八)
降序索引
- 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;

网友评论