gpt4 book ai didi

database-design - 你什么时候定义一个降序索引?

转载 作者:行者123 更新时间:2023-12-04 07:09:00 25 4
gpt4 key购买 nike

通过一些 SQL 实现,我注意到大多数 DBMS 支持在具有降序的列上定义索引,例如

CREATE INDEX anIndex ON aTable (aColumn DESC);

什么时候这比 ASC 索引更有优势?为什么 ASC 或 DESC 是索引定义的一部分?

如果索引的实现是高效的(B 树甚至排序列表中的二进制搜索),我看不出 ASC 或 DESC 索引之间有任何实质性差异。

我错过了什么?

最佳答案

如果表是聚簇的,索引实际上是这样的:

acolumn DESC, id ASC

并且可以用在像

这样的查询中
SELECT  TOP 1 *
FROM mytable
ORDER BY
acolumn DESC, id ASC

SELECT  TOP 1 *
FROM mytable
ORDER BY
acolumn ASC, id DESC

,但不在

SELECT  TOP 1 *
FROM mytable
ORDER BY
acolumn DESC, id DESC

对于复合索引,列也可以按相反的方向排序:

CREATE INDEX anIndex ON aTable (aColumn DESC, bColumn ASC);

关于database-design - 你什么时候定义一个降序索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2370875/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com