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

文章目录

    在使用 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。这样就有效提示了倒序的查询速度。

    参考

    关于作者 🌱

    我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊,或者关注我的个人公众号“大象工具”, 查看更多联系方式