MySQL 新建索引中的 Order 为 ASC 或者 DESC 的区别

更新日期: 2019-03-12 阅读次数: 183 字数: 205 分类: MySQL

在使用 MySQL Workbench 新建 MySQL 数据表索引时,会看到 Order 这一项配置。

可选值为 ASC 或者 DESC。

MySQL 新建索引中的 Order 为 ASC 或者 DESC 的区别

对应的建表语句为

CREATE TABLE `blog`.`products` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `name` VARCHAR(255) NOT NULL,
  `status` TINYINT NOT NULL DEFAULT 1,
  PRIMARY KEY (`id`),
  INDEX `ix_status` (`status` ASC))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8mb4;

可以看到 INDEX 默认为 ASC。

MySQL 5.7 及之前版本

索引的默认 Order 为 ASC,即使指定为 DESC 在数据存储时也是 ASC。所以,索引 Order 只是为了方便未来扩展所预留的一个关键字。在 MySQL 5.7 及之前版本中,并不起任何作用。

MySQL 8.0 及之后版本

MySQL 是在 8.0 之后支持了 Order 为 DESC。这样就有效提示了倒序的查询速度。

参考

领取阿里云数据库优惠券

阿里云数据库优惠券,最高可领 1888 元

爱评论不评论

近期节日

2019年04月01日 愚人节
2019年04月01日 复活节
2019年04月02日 国际儿童图书日
2019年04月04日 寒食节
2019年04月05日 清明节
2019年04月07日 世界卫生日
2019年04月11日 世界帕金森病日
2019年04月20日 谷雨
2019年04月22日 世界地球日
2019年04月23日 世界读书日
2019年04月26日 知识产权日
2019年04月30日 全国交通安全反思日
查看更多节日