Column Vs Row store index?

database-administration, query-optimization, sql, sql-server-2012

Solution

In SQL Server, prior to 2012 all indexes were row-store, you specify what fields you want to index, and the value of the rows are evaluated to improve performance (over-simplified). These indexes speed up finding/filtering rows.

Columnstore indexes introduced to SQL Server in 2012, also require you to specify what fields you want to index (Microsoft recommends including all fields in a Columnstore index). These indexes aren't like traditional indexes, they're more like pre-aggregated statistics.

More in-depth descriptions of the index types are available, but your basic confusion seemed to be row vs column. All indexes are applied to columns, but how the index works and what it stores is different between the two types.

Problem

Can any one give a quick overview about `Column Store Index` and `Row Store Index`? I have searched over the internet and got confused, they say an `Index` can be applied to a `Field(Column)`, while they also say there exist a `row store index`? Need clarification. Many thanks!

Original source