首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

MySQL 降序索引简介?

中创建降序索引 在MySQL5.7中创建降序索引,并执行SQL查看执行计划 # 创建降序索引 alter table test1 add key idx_nameDesc_createtimeAsc...中查看索引情况 查看索引情况会发现,MySQL5.7中,即使创建了降序索引,但是,排序方式依旧是升序(A[sc]) mysql> show index from test1; +-------+---...一致,也是需要进行filesort 3.2 MySQL8.0中创建降序索引 在MySQL8.0中创建降序索引,并执行SQL查看执行计划 # 创建降序索引 alter table test1 add...中的降序索引被使用到了,且排序无需进行filesort 3.3 MySQL8.0中查看索引情况 查看索引情况会发现,MySQL8.0中,升序索引及降序索引的排序方式出现了区分了 +-------+-...小结 MySQL5.7中,可以创建降序索引,但只是停留在语法层面上,到MySQL8.0才能使用上降序索引 另外,如果在MySQL5.7及之前版本,order by 多个字段时,建议排序方式一致(可以均升序或均降序

1.1K40

MySQL 8.0新特性 — 降序索引

前言 相信大家都知道,索引是有序的;不过,在MySQL之前版本中,只支持升序索引,不支持降序索引,这会带来一些问题;在最新的MySQL 8.0版本中,终于引入了降序索引,接下来我们就来看一看。...降序索引 单列索引 (1)查看测试表结构 mysql> show create table sbtest1\G *************************** 1. row **********...-----+----------+-------+ 1 row in set, 1 warning (0.00 sec) (3)执行SQL语句order by ... desc limit n,如果是降序的话...: 0 Warnings: 0 (5)再次执行SQL语句order by ... desc limit n,可以使用到降序索引 mysql> explain select * from sbtest1...8.0引入的降序索引,最重要的作用是,解决了多列排序可能无法使用索引的问题,从而可以覆盖更多的应用场景。

1.7K157

MySQL 8.0 新特性之降序索引

MySQL 8.0终于支持降序索引了。其实,从语法上,MySQL 4就支持了,但正如官方文档所言,"they are parsed but ignored",实际创建的还是升序索引。...降序索引的意义 如果一个查询,需要对多个列进行排序,且顺序要求不一致。在这种场景下,要想避免数据库额外的排序-“filesort”,只能使用降序索引。...这其实是降序索引的主要应用场景。如果只对单个列进行排序,降序索引的意义不是太大,无论是升序还是降序,升序索引完全可以应付。还是同样的表,看看下面的查询。...在这里,大家容易产生误区,以为升序索引就不能用于降序排列,实际上,对于索引,MySQL不仅支持正向扫描,还可以反向扫描。反向扫描的性能同样不差。...以下是官方对于降序索引的压测结果,测试表也只有两列(a,b),建了一个联合索引(a desc,b asc),感兴趣的童鞋可以看看,http://mysqlserverteam.com/mysql-8-0

77020

MySQL 8.0新特性:降序索引

上两篇文章分别介绍了MySQL8.0的相关的新特性《MySQL 8.0新特性:隐藏索引》和《MySQL 8.0新特性:隐藏字段》,本文继续介绍MySQL8.0的另一个相关的新特定性--降序索引;本文通过...5.7和8.0进行对比说明; MySQL从8.0开始终于支持真正的降序索引了,实际上,在以前的版本当中,语法上可以通过desc来指定索引为降序,但实际上创建的仍然是常规的升序索引。...在MySQL-5.7中,它是`idx_c1_c2` (`c1`,`c2` ),因为不支持降序索引。...意识到降序索引在这两种排序场景下的缺陷。根据同样的道理,我们也能够发现降序索引在另一种场景下的优势。...如查询3和查询4的SQL语句,MySQL用到了索引,使用了Backward index scan。 降序索引最大的应用场景便是如上例这样对多字段排序的场景,这种场景下,能够最大的发挥降序索引的作用。

2.7K40

Oracle根据时间查询

指定时间的下一个星期几(由char指定)所在的日期, NEXT_DAY(date,char) select next_day(sysdate,2) from dual; --当前时间的下一个周一...查询时间之前的时间(查之后把减号换成加号) 当前时间减去7分钟的时间 select sysdate,sysdate - interval '7' MINUTE from dual 当前时间减去7小时的时间...select sysdate - interval '7' hour from dual 当前时间减去7天的时间 select sysdate - interval '7' day from dual...当前时间减去7月的时间 select sysdate,sysdate - interval '7' month from dual 当前时间减去7年的时间 select sysdate,sysdate...'2' hour from dual 获取七天之后的时间 select (sysdate + 7) from dual; 获取前一个月的时间(正数时是加月,负数时为减月) select add_months

2K20

MySQL8.0之降序索引(descending index)

// MySQL8.0之降序索引(descending index) // MySQL8.0引入了降序索引(descending index),今天我们来说说这个特性。...当SQL中有多个列,但是每个列的排序顺序不一样的时候,降序所以就能起到比较重要的作用,下面我们慢慢分析。 首先来看,MySQL5.7和MySQL8.0中针对索引的排序语法。...00 MySQL5.7和MySQL8.0降序索引差异 MySQL5.7创建降序索引: mysql> create table test (c1 int,c2 int,index idx_c1_c2(c1...MySQL8.0创建降序索引: mysql> create table test (c1 int,c2 int,index idx_c1_c2(c1,c2 desc)) -> ; Query...01 降序索引对SQL的影响 首先给出test和test1的表结构,方便下面测试结果对照: test的表结构 mysql> show create table test\G **************

4.4K30

Mysql8中降序索引的底层实现

中也是支持的,使用这种语法创建出来的索引就叫降序索引,关键问题是:在Mysql8.0之前仅仅只是语法层面的支持,底层并没有真正支持。...三个字段的排序方式是desc,这就可以看出来在Mysql7中降序索引只是语法层面的支持,底层并没有真正支持,并且固定是升序索引。...而在Mysql8中则真正从底层支持了降序索引。 到此为止,大家应该对升序索引和降序索引有了一个大概的了解,但并没有真正理解,因为大家并不知道升序索引与降序索引底层到底是如何实现的。...所以,对Mysql表中的存储的数据也是一样的,我们如果想提高这个表的查询速度,我们可以先对这个表里的数据进行排序,那么表里的某一行数据包括了很多字段,我们现在想对这些数据行进行排序,我们应该根据哪些字段来确定这个顺序呢...这就是降序索引。 总结 实际上升序索引和降序索引是不同的排序方式而已,Mysql8中正在实现了降序索引后,我们在创建索引时更加灵活,可以根据业务需要的排序规则来创建合适的索引,这样能使你的查询更快。

1.3K30

小白学习MySQL - 降序索引的功能和作用

Oracle很久前的版本就支持降序索引的功能,MySQL是从8.0才开始支持。...官方文章《MySQL 8.0 Labs - Descending Indexes in MySQL》的经验,虽然MySQL 5.7的优化器可以降序遍历升序索引,但这是需要成本代价的,正序访问可能会比降序访问的效率高...c2按照降序,此时除了用到索引外,还用到了filesort,原因就是复合索引中c1和c2都是升序排列,但是执行的SQL中c1按照升序,c2按照降序,两者相悖,因此,会多了对c2做降序排列的操作, mysql...虽然MySQL 8.0开始支持降序索引了,但是,选择什么类型的索引,还是要根据实际的业务场景来决策,例如有(c1, c2 desc)这种需求,适当地创建降序索引是有帮助的,如果绝大多数场景都是(c1,...c2),这就很可能产生负面影响,因此,降序索引只是为了优化提供了一种选择,究竟选择什么,还是要结合实际的场景来综合考量,从MySQL降序索引的支持,能看出他的设计,其实也是与时俱进的。

2.1K20

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券