Columnar vs Row Storage

Row storage and columnar storage are two ways a database physically lays out data on disk. Row storage keeps all the values of a record together. Columnar storage keeps all the values of a column together. The choice has a huge impact on performance.

Which layout suits which job

Row storage is great when you need whole records at once. Fetching one customer's full profile, or inserting and updating single rows, is fast because everything for that record sits together. This is what transactional databases use.

Columnar storage is great when you need a few columns across many records. Computing an average over one column of a billion rows only touches that column, so the engine reads far less data. Columns also compress better because their values are similar. This is what analytical databases use.

Neither is better in general. They are optimized for opposite jobs. The mistake is using one where the other fits, like running heavy analytics on a row store.

How Arc handles Columnar vs Row Storage

Arc uses columnar storage, in open Parquet, because it is built for analytics over large volumes of time-stamped data. It is not a replacement for your row-based transactional database. The two are complementary.

Arc is a high-performance columnar database. Open Parquet on storage you own, single Go binary, production-ready in 30 seconds.