Standard defines 4 levels, InnoDB implements all of them:

  • read uncommited
  • read commited
  • repeatable read (default)
  • serializable

But different levels have different impact on performance, mainly because of locks.

In reality read uncommited level is implemented badly or not at all in every database. Looks like developers are affraid of it. Also InnoDB does not give us any advantages when we use this level. Theoretically it should avoid check of older version of rows. But experiences on internet suggest that this is not the case.

On the other hand “read commited” allows to speed up responses when compared with “repeateble read” on tables with heavy updates if we do not really need “repeateble read safety”.