Sweaty Imposter

READ COMMITTED Isolation Versus SERIALIZABLE Isolation

TradeoffDatabase InternalsMidSeniorUpdated

OLTP service mostly does single-row updates with the occasional multi-row consistency check (e.g., 'don't double-book a seat').

Short answer: READ COMMITTED isolation. READ COMMITTED is the cheapest correct default for the common case.

The Two Options

A

READ COMMITTED isolation

B

SERIALIZABLE isolation

Drill This: Your Pick First

The Better Pick

Option A

READ COMMITTED isolation

READ COMMITTED is the cheapest correct default for the common case. Pay for SERIALIZABLE (or explicit row locks / unique constraints) only on the few transactions that actually need protection from write skew or phantoms.

When the Other One Wins

SERIALIZABLE isolation

If multi-row invariants are pervasive (financial postings, scheduling), running everything at SERIALIZABLE (Postgres SSI) is simpler than reasoning about which transactions need SELECT FOR UPDATE.