【发布时间】:2010-09-21 07:03:27
【问题描述】:
我正在计划软件,它的核心是一个 OLAP 应用程序(它有助于分析计量数据),并将为其数据库提供某种星型模式,因为将从不同角度(时间、来源、类型等),并且请求将要求提供这些维度的聚合数据。查询往往会提供很多行(最多约 100 000 行)。
我对这个主题的研究(另见my question here)似乎表明位图索引是按照我计划的方式搜索数据的好方法。但是,我想支持多个数据库引擎,其中一些不提供其表上的位图索引(特别是 MySQL)。
现在,我当然可以构建和维护自己的位图索引,并使用它来查找指向事实表的行 ID。但是,我怀疑这会破坏索引的全部目的,因为数据库仍将在 B-Tree 中搜索行 ID。有更深的理论背景或更多经验的人可以告诉我,如果我还有什么收获,比如不必在维度表上做慢 JOIN 吗?
如果答案不直截了当,我也希望能得到有关我必须评估的提示。
【问题讨论】:
-
对于支持位图索引的数据库,我建议使用它们而不是使用所有数据库的最低公分母。
标签: database-design olap