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.