Skip to main content

🗓️ 31012025 1637
📎 #wip

row_oriented_storage

TLDR

Row-oriented storage stores entire rows of a table sequentially on disk or memory

In this model, all columns belonging to a particular row are stored together

How It Works

IDNameAgeSalary
1Alice30100k
2Bob35120k
3Carol2895k

Table of data to be stored

[1, Alice, 30, 100k], [2, Bob, 35, 120k], [3, Carol, 28, 95k]

How data is stored on disk

Pros

  • Efficient for oltp workloads
    • Best suited for transactional systems where queries typically access one or a small number of rows at a time (e.g., retrieving user profiles or updating orders).
  • Fast for point queries and updates:
    Accessing or updating a specific row (e.g., based on a primary key) is faster because the data is stored contiguously.

Cons

  • Not ideal for analytics:
    Analytics queries often access only a few columns (e.g., aggregating salaries). With row storage, reading the entire row introduces unnecessary I/O overhead.

  • Larger disk usage for sparse data:
    If many columns contain nulls or zeros, row-oriented storage can lead to inefficient space utilization compared to columnar storage.

Best Use Cases:

  • OLTP workloads where frequent inserts, updates, or deletes are common (e.g., user transactions, bank systems).
  • Point queries like "find employee details by ID."

References