Columnar Vs Row-Oriented Databases – Differences (90 sec Read)

When it comes to relational databases, there are two types – row-oriented databases and column oriented databases. The row-oriented databases store all values in a row together while the column-oriented databases (aka columnar databases) store all values from a column together. You have to choose between row-oriented and columnar databases carefully because your decision will have a big impact on performance. Row-oriented databases have been around for a long time. Columnar database are relatively new. They have only been around since 2005.

Columnar databases vs row-oriented databases

Columnar databases

Faster queries for analytics

In a data warehouse, you are likely to query a few columns but a large number of rows. In this case, a columnar database will be faster. So columnar databases are great for analytical processing applications (OLAP). Popular data warehouse databases such as RedShift, Snowflake, and BigQuery are columnar databases.

Data is partitioned vertically

Columnar are databases are partitioned vertically. Since these databases store values by column, reads are more efficient.

Better data Compression

Values in a column are more likely to have the same data type. I addition, the number of distinct values are smaller in a column compared to a row. As a result, data compression is more efficient in columnar databases.

Popular  columnar databases

BigQuery, Redshift, Snowflake

What’s not so good

While columnar databases are great for reading, when it comes to writing data, they are not as efficient.

Row oriented databases

Ideal for OLTP (online transaction processing)

Inserts, updates, and deletes involving small amounts of data are common in most transaction databases. In such cases, a row- oriented databases make sense.

Data is partitioned horizontally

Row oriented databases are partitioned horizontally. These databases store values by row , so writing data is more efficient. Performance of these databases can be improved by indexing

Common row-oriented databases

mysql, PostgreSQL

Leave a Reply