Columnar storage and batch processing
Various researchers started to think about columnar storage already in the 80's. The main idea is that a relational database management system (RDBMS) does not need to store the data in exactly the same way we understand it and work with it. In a relational model, a tuple represents an entity and is stored as a row of a table, which is an entity set. Traditionally, database management systems store entities row by row. However, as long as we get rows back to the client application, we do not care how an RDBMS stores the data.
This is actually one of the main premises of the relational model—we work with data on the logical level, which is independent of the physical level of the physical storage. However, it was not until approximately the year 2000 when the first attempts to create columnar storage came to life. SQL Server added columnar storage first in version 2012.
Columnar storage is highly compressed. Higher compression means more CPU...