为什么关系数据库不支持聚合函数索引?

时间:2016-05-15 13:12:32

标签: database indexing data-structures aggregate-functions

我一直在学习关系数据库的工作原理以及如何使用它们。据我所知,没有一个主要的允许你有效地索引聚合函数,只有标量函数。这是为什么?

例如,假设您正在跟踪金融帐户。您有很多交易,并且想知道帐户余额是多少。对于当前的实现,您不得不运行全表查询来聚合所有事务的总和,或者存储冗余的派生数据,以及这带来的所有麻烦。

由于索引基本上只是B树,为什么节点不能存储所有子节点的部分和?这样,数据库可以在对数时间内构建任何连续索引区域的总和。我不确定这是否适用于任何聚合函数,但是最常用的函数如min,max,sum,count和average都是微不足道的,可以用这种方式划分和征服。

所以我错过了这种方法的一些微妙问题?或者这个概念没有实现的另一个原因是什么?因为听起来不那么难。

0 个答案:

没有答案