The four isolation levels of transactions are: 1. Read uncommitted content (Read Uncommitted); 2. Read submitted content (Read Committed); 3. Repeatable Read (Repeatable Read); 4. Can Serializable.
Four isolation levels of transactions:
(Recommended learning: mysql tutorial)
1. Read Uncommitted -- Read uncommitted content
A transaction can view uncommitted content
Dirty reading problems often occur (dirty reading: reading uncommitted (executed) content of other transactions)
Open two transactions A and B (A , B transaction cross) start transaction
A transaction only queries the content in the data table, B transaction performs addition, deletion and modification operations but does not commit(submit)
A transaction can still query the data in the table Change (query uncommitted content--dirty reading)
2. Read Committed -- read the submitted content
One transaction only Ability to view submitted content
often causes non-repeatable read problems (non-repeatable read: executing the same select statement in the same transaction to obtain different results)
Open two transactions A and B for the same data table (A and B transactions intersect) start transaction
A transaction only queries the content in the data table, and B transaction performs addition, deletion and modification operations but does not commit ( Submit)
A transaction query cannot find the content of the data changes in the table
B transaction submission
A finds the data changes (A queries twice, resulting in different Result - non-repeatable read)
3. Repeatable Read -- rereadable
When multiple instances of the same transaction read data concurrently Get the same result
MySQL's default transaction isolation level
often causes phantom reading problems (phantom reading: different results when reading multiple times) (Phantom row))
Open two transactions A and B for the same data table (A and B transactions intersect) start transaction
A transaction only queries the data table Content, transaction B performs addition, deletion and modification operations but does not commit
A transaction query cannot find the content of the data changes in the table
B transaction submission
A transaction query The content of the data changes in the table cannot be found
A submits
A can query the changes in the data in the table
4. Serializable -- Serializable
The highest isolation level
Add a shared lock to the transaction, and there can only be one transaction operation at the same time to solve the phantom read problem
Will lead to a large number of timeouts and lock competition issues
Open transaction A
This operation cannot be added or deleted when transaction B is opened
The above is the detailed content of What are the four isolation levels of transactions?. For more information, please follow other related articles on the PHP Chinese website!