SQL ISOLATION refers to the isolation level applied to a transaction, controlling phenomena such as dirty reads, non-repeatable reads, and phantom reads. The SQL standard specifies four levels: READ UNCOMMITTED, READ COMMITTED, REPEATABLE READ, and SERIALIZABLE. Each higher level prevents more concurrency anomalies but can reduce throughput. Isolation is usually set by executing SET TRANSACTION ISOLATION LEVEL before a transaction begins, or by configuring a session or database default. Some databases add proprietary levels (e.g., PostgreSQL's REPEATABLE READ behaves like snapshot isolation, SQL Server offers SNAPSHOT, MySQL provides READ COMMITTED as default in InnoDB). Choosing the right level balances data correctness against performance. Lower levels allow higher concurrency but risk inconsistent data; higher levels guarantee consistency at the cost of locking or versioning overhead.
STRING One of READ UNCOMMITTED
(READ COMMITTED) - REPEATABLE READ|||SERIALIZABLE (plus vendor-specific options such as SNAPSHOT)SET TRANSACTION, COMMIT, ROLLBACK, SAVEPOINT, MVCC, LOCK TABLE
SQL-92
READ COMMITTED is the default. It prevents dirty reads but allows non-repeatable reads and phantom rows.
Yes. You can set a different level for each transaction with SET TRANSACTION ISOLATION LEVEL without affecting subsequent transactions.
Not necessarily. MVCC implementations like PostgreSQL can achieve high concurrency under SERIALIZABLE, but write conflicts may trigger rollbacks if contention is heavy.
Query system views or variables. For example, in PostgreSQL: `SHOW default_transaction_isolation;` or `SHOW transaction_isolation;`