Best situation to use Column database
Column oriented database or datastore as the name sounds it stores the data by column rather than by row. It has some advantages and disadvantages over traditional RDBMS. Developer should know the typical situation to choose column oriented database.
Below is the Student table representation
Row oriented database will store the data as rows.
Column oriented database will store the data as columns.
- Column oriented database are good in doing aggregates for many rows by reading / loading subset of columns. It will load columns which are required. It doesn't need to parse all the rows.
- More frequent updates on columns or adding a new column will be faster as it needs to write only that specific column. In case of row-oriented database, every single row is affected.
- Most of the column oriented database provides support for compressing the data. Each column is compressed and stored in disk. On request (when queried) particular column will be uncompressed and loaded to memory. This saves disk storage.
Column oriented database is good for OLAP (Online Analytical Processing), Reporting, Data mining etc. In the above example we could generate reports like Students of same age group, Students of same sex, Students who scored top grade etc. Row oriented database is good for transaction database like banking, finance etc.
See also: Open source column-oriented database