Question

Are there any performance advantages in using a ROLAP server such as Mondrian on top of a MySQL database, as opposed to simply querying the MySQL database?

I am asking this in the context in which most of my queries will be relatively simple (such as finding all the sales in a certain period), but the size of the database is rather large (hundreds of thousands of entries).

My idea was to use OLAP to speed up queries, but now I'm confused as to whether or not this is actually the purpose of this technology, especially in its ROLAP form. While trying the olap4j API, I realized that I can use it to make MDX queries without even having an actual OLAP server (just having a relational database and an OLAP schema for it). How could that be of any use in terms of performance?

Thanks

Was it helpful?

Solution

It depends on how you're going to use it.

OLAP is a tool for simplifying complex data analysis. If your queries are static and simple, then don't use ROLAP. It would add unnecessary overhead.

On the other hand, if you need to do complex and detailed interactive data analysis for reporting and business intelligence, then by all means use ROLAP.

UPDATE: If you need high-performance OLAP for MySQL, you should take a look at this post on the MySQL performance blog for a discussion of the differences in performance of various approaches and tools.

OTHER TIPS

OLAP allows for analysing your data in several dimensions; each dimension possibly (if not always) being a "hierarchy" (i.e., tree). This allows you for going from the big picture (highly aggregated data) to the details when required (drilldown).

In addition, the power of the MDX language and/or calculated measures allows for complex queries quite difficult if not impossible to do in pure SQL.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top