作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
通过一些 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/
我是一名优秀的程序员,十分优秀!