23

我刚刚了解了反向索引。维基百科页面说

在数据库管理系统中,反向键索引策略在将键值输入索引之前将其反转。1例如,值 24538 在索引中变为 83542。反转键值对于索引数据(例如序列号)特别有用,其中每个新键值都大于先前的值,即值单调增加。反向键索引在大容量事务处理系统中变得特别重要,因为它们减少了索引块的争用。

为什么反转键值对索引序列号很有用?此外,为什么反向索引有助于减少大容量系统中索引块的争用?简而言之:反向索引有什么意义?

4

1 回答 1

44

在您的示例中,它指的是序列号是反向索引的一个很好的应用程序。取引用的数字24538,它将在某个点插入索引中。序列中的下一个数字将是24539,它将插入索引中,非常接近第一个数字,因为最高有效数字是相同的。扩展这一点,许多序列号都需要在几乎相同的点插入,这涉及扩展索引块和沿途重新平衡索引的大量开销。

这些数字中最不重要的数字比最重要的数字变化得更快。因此,颠倒数字的顺序分别给出8354293542。这两个数字将被插入到索引中,并且相距更远,并将其扩展到许多数字,索引将以更平衡的方式构建,从而减少索引管理的开销。

反转数字的操作在计算方面是微不足道的,而管理索引可能涉及许多磁盘访问,因此以减少管理开销的方式在索引中插入项目可以显着提高性能。

于 2013-11-09T20:47:32.517 回答