Transaction isolation levels are the least understood feature of relational databases. Most developers don’t know them and just use the default one. Actually, a relevant part of them even believe they use MySQL without transactions.
Amongst isolation levels,
READ UNCOMMITTED is the
least understood. So here’s a quick note about what it is and why
– if you know about it – you probably have false beliefs.
READ UNCOMMITTED is totally inconsistent.
It sees changes (new, deleted, modified rows) made by other
transactions, that didn’t
COMMIT yet. And actually,
it’s possible that those transactions will fail, which leads
READ UNCOMMITTED to see something that will never
Despite this, it is extremely useful in some cases. For example:
- To run
SELECTs which read a huge amount of rows for analytics.
- To …