有人说对于复合索引然后排序很重要。有人说顺序无关紧要。
哪个是对的?为什么?
我的意思是,如果我查找手机,我根本看不出手机是按 a 到 z 排序还是按 z 排序。对于复合索引,这会发生什么变化?
注意:我的意思是按降序或升序排序。我很清楚列的顺序很重要。
请注意,我们有 2 个来自高分成员(member)的回答。有人说即使对于复合索引,降序或升序也无关紧要。另一个说这很重要。所以是的,这里存在争议。我(或我们)在哪里可以挖掘更多。
最佳答案
一般情况下的顺序很重要。问题是:您指的是什么顺序,它对您的情况重要吗?
降序与升序。仅在非常特殊的情况下才重要,您实际上希望结果按特殊顺序排序。假设您希望结果这样排序:
a 升序,b 降序,c 升序
但是你的索引是
a asc, b asc, c asc
数据库必须进行额外的排序。当你想根据某种顺序访问前 n 个元素时,这同样适用。这一点对于组合索引更为重要,因为单列的方向改变会导致完全不同的总排序,而单列索引中单列的排序只是颠倒了顺序。
列的顺序 so
a, b, c
对比
b, a, c
如果您针对所有列进行过滤,则差别不大,但如果您仅针对 a 进行过滤,则第一个索引将比第二个索引更有用。
每当您有两种解决编程语言问题的选择,而有人告诉您它们没有什么不同时,请问为什么存在这两种选择。如果“某人”不能回答这个问题,我不会相信他关于两者等同的建议。
关于database - 索引顺序(升序还是降序)重要吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12337797/