database - 索引顺序(升序还是降序)重要吗?

标签 database indexing

有人说对于复合索引然后排序很重要。有人说顺序无关紧要。

哪个是对的?为什么?

我的意思是,如果我查找手机,我根本看不出手机是按 a 到 z 排序还是按 z 排序。对于复合索引,这会发生什么变化?

注意:我的意思是按降序或升序排序。我很清楚列的顺序很重要。

请注意,我们有 2 个来自高分成员(member)的回答。有人说即使对于复合索引,降序或升序也无关紧要。另一个说这很重要。所以是的,这里存在争议。我(或我们)在哪里可以挖掘更多。

最佳答案

一般情况下的顺序很重要。问题是:您指的是什么顺序,它对您的情况重要吗?

  1. 降序与升序。仅在非常特殊的情况下才重要,您实际上希望结果按特殊顺序排序。假设您希望结果这样排序:

    a 升序,b 降序,c 升序

但是你的索引是

a asc, b asc, c asc

数据库必须进行额外的排序。当你想根据某种顺序访问前 n 个元素时,这同样适用。这一点对于组合索引更为重要,因为单列的方向改变会导致完全不同的总排序,而单列索引中单列的排序只是颠倒了顺序。

  1. 列的顺序 so

    a, b, c

对比

b, a, c

如果您针对所有列进行过滤,则差别不大,但如果您仅针对 a 进行过滤,则第一个索引将比第二个索引更有用。

每当您有两种解决编程语言问题的选择,而有人告诉您它们没有什么不同时,请问为什么存在这两种选择。如果“某人”不能回答这个问题,我不会相信他关于两者等同的建议。

关于database - 索引顺序(升序还是降序)重要吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12337797/

相关文章:

iphone - FMDB 包装器 VS 核心数据 : Which is easier to Use & Maintain?

mysql - 如何从mysql获取特定表的索引值?

python - 使用函数从指定索引开始对 Python 中不同长度的列表求和

python - Pandas DataFrame 索引的自动递增选项

mysql - 哪些索引应该有一个表来快速执行大型 SQL 查询?

mysql - 使用mysql标准格式创建记录

database - URI 图像 - 数据库列 v/s 类文件

sql - 在 Oracle 中创建一个 View 来显示每个部门的平均工资?

php - 在本地和实时之间同步数据库,php mysql

r - 如何为其他列中的一组值创建索引列