使用ROLAP服务器(如Mondrian)是否比仅查询MySQL数据库有性能优势?
我是在大多数查询相对简单的情况下提出这个问题的(例如查找某一时期内的所有销售),但数据库的大小相当大(有数十万条记录)。
我的想法是使用OLAP加速查询,但现在我对于这种技术(特别是ROLAP形式)的实际用途是否是这样感到困惑。尝试使用olap4j API时,我意识到即使没有实际的OLAP服务器(只有关系型数据库和一个针对它的OLAP模式),也可以使用它来进行MDX查询。在性能方面,这有什么用处呢?
谢谢
使用ROLAP服务器(如Mondrian)是否比仅查询MySQL数据库有性能优势?
我是在大多数查询相对简单的情况下提出这个问题的(例如查找某一时期内的所有销售),但数据库的大小相当大(有数十万条记录)。
我的想法是使用OLAP加速查询,但现在我对于这种技术(特别是ROLAP形式)的实际用途是否是这样感到困惑。尝试使用olap4j API时,我意识到即使没有实际的OLAP服务器(只有关系型数据库和一个针对它的OLAP模式),也可以使用它来进行MDX查询。在性能方面,这有什么用处呢?
谢谢
这取决于你将如何使用它。
OLAP是一个简化复杂数据分析的工具。如果你的查询是静态和简单的,那么不要使用 ROLAP,因为它会增加不必要的开销。
另一方面,如果你需要进行复杂和详细的交互式数据分析以进行报告和商业智能,那么务必使用 ROLAP。
更新: 如果你需要高性能 OLAP 用于 MySQL,则应查看 MySQL 性能博客上的此文章,以讨论各种方法和工具的性能差异。
OLAP允许您在几个维度中分析数据; 每个维度可能是一个“层次结构”(即树)。(drilldown),这使您可以从宏观数据(高度聚合的数据)到需要详细信息时进行转换。
此外,MDX语言和/或计算度量的功能使得可以进行复杂的查询,而这在纯SQL中是相当困难甚至不可能的。