First, what does MDX stands for? MDX stands for Multidimensional Expressions. It’s a database programming language to query and create calculations and measures in Microsoft cubes. It’s a language used by databases dedicated to analysis.
To go further, let’s consider the two types of Microsoft databases, multidimensional and transactional ones. In this article we are dealing with the first type of database: the multi dimensional ones, also called OLAP databases.
The MDX abbreviation stands for MultiDimensional eXpressions
To conclude, the MDX language is the equivalent of SQL but for cubes instead of databases. Business intelligence applications use it widely to allow end-users to analyze the financial or production data of a given company or organization.
MDX queries are therefore indispensable tools for complex SSAS projects. In order to get more information on the language check the Wikipédia article on MDX. For tabular models and newer analytics tools from Microsoft like Power BI for example, the equivalent language is DAX.
OLAP cubes use MDX and Tabular Models use DAX
The main differences between DAX and MDX langages is that MDX can handle more complex business cases including parent-child and many to many relationships.
Also, a Tabular Model with In-Memory mode is limited to the memory limit of the machine. The DirectQuery tabular models can handle more data as they are connected to a relational database. Whereas the OLAP cubes are stored on standard disks with specific caching of sub cubes, and it can handle very large volumes, like terabytes of data.