1
120
当与复合索引一起使用时,这一点很重要:
可用于:
或:
,但不适用于:
单列上的索引可以以两种方式高效地用于排序。 有关详细信息,请参阅我的博客中的文章: 更新: 事实上,即使对于单列索引,这也很重要,尽管它并不那么明显。 设想一个聚集表列上的索引:
指数
由于表是集群的,对行的引用实际上是
这意味着索引的叶实际上是在
不需要排序。 如果我们创建索引如下:
,然后是
这意味着以下查询:
可以由
换句话说,构成
|
2
63
对于一个真正的单列索引,它与查询优化者的观点没有什么区别。 对于表定义
查询
使用具有扫描方向的有序扫描
然而 它可以在逻辑碎片方面产生很大的差异 . 如果索引是使用键降序创建的,但是新行附加了升序键值,那么您可以以每一页都不符合逻辑的顺序结束。这会严重影响扫描表时IO读取的大小,而该表不在缓存中。 查看碎片结果
对于下面的脚本
可以使用“空间结果”选项卡验证假设,这是因为在这两种情况下,后面的页面都有升序键值。
|
3
8
当您想要检索大量已排序的数据而不是单个记录时,排序顺序很重要。 请注意(正如您在提出问题时所建议的那样),排序顺序通常远不如正在索引的列重要(如果顺序与所需顺序相反,则系统可以反向读取索引)。我很少给出索引排序顺序的任何想法,而我却为索引所覆盖的列而苦恼。 @Quassnoi提供了 great example 当它 做 物质。 |
ecology · 基于R中随机生成数集的子集列 2 年前 |
Krischk · 使用python;获取列表中错误项的索引[已关闭] 2 年前 |
Mohona · 对一维数组元素的迭代在几次迭代后给出了索引错误 2 年前 |
X3VI · 熊猫-重命名_轴后无法按预期工作-为什么? 2 年前 |
dam · 为什么这是我使用索引的输出?什么是索引?[闭门] 2 年前 |
Sahil Panhalkar · 显示索引超出范围的列表更新语句 2 年前 |
SpaceBallz · 比较嵌套列表中的值 2 年前 |
startresse · 自定义type\u索引顺序,无boost 2 年前 |