Dirty reads, lost updates, and write skew: the bugs each isolation level permits, what Postgres and MySQL actually default to, and the cheapest weapon per write path.