mysql按升序创建索引_MySQL 降序索引

本文介绍了MySQL 8.0开始支持的降序索引特性,详细阐述了如何创建降序索引,并通过示例展示如何利用降序索引优化查询性能,包括不同排序顺序的查询情况。
摘要由CSDN通过智能技术生成

MySQL 降序索引

简介:在本教程中,您将了解MySQL降序索引以及如何利用它来提高查询性能。

MySQL降序索引简介

降序索引是以降序存储键值的索引。在MySQL 8.0之前,您可以DESC在索引定义中指定。但是,MySQL忽略了它。与此同时,MySQL可以以相反的顺序扫描索引,但成本很高。

以下语句创建一个带索引的新表:

CREATE TABLE t(

a INT NOT NULL,

b INT NOT NULL,

INDEX a_asc_b_desc (a ASC, b DESC)

);

当您使用SHOW CREATE TABLE在MySQL 5.7,你会发现,DESC如下图所示被忽略:

mysql> SHOW CREATE TABLE t\G;

*************************** 1. row ***************************

Table: t

Create Table: CREATE TABLE `t` (

`a` int(11) NOT NULL,

`b` int(11) NOT NULL,

KEY `a_asc_b_desc` (`a`,`b`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1

1 row in set (0.00 sec)

从MySQL 8.0开始,如果DESC在索引定义中使用关键字,则键值将按降序存储。在查询中请求降序时,查询优化器可以利用降序索引。

以下显示了MySQL 8.0中的表结构:

mysql> SHOW CREATE TABLE t\G;

*************************** 1. row ***************************

Table: t

Create Table: CREATE TABLE `t` (

`a` int(11) NOT NULL,

`b` int(11) NOT NULL,

KEY `a_asc_b_desc` (`a`,`b

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值