当前位置:网站首页>The isolation level of transaction and its problems
The isolation level of transaction and its problems
2020-11-06 21:19:00 【Irving the procedural ape】
One 、 The basic elements of a business (ACID)
1、 Atomicity (Atomicity): All operations after the transaction begins , Or all of them , Or not at all , It's impossible to stay in the middle . An error occurred during the execution of the transaction , It rolls back to the state it was in before the transaction started , All the operations are as if they didn't happen . That is to say, a business is an indivisible whole , It's like atoms in chemistry , Is the basic unit of material composition .
2、 Uniformity (Consistency): Before and after the transaction starts , The database integrity constraint is not broken . such as A towards B Transfer accounts , impossible A Buckle the money ,B Has received .
3、 Isolation, (Isolation): At the same time , Only one transaction is allowed to request the same data , There is no interference between the different transactions . such as A Withdrawing money from a bank card , stay A Before the withdrawal process is over ,B You can't transfer money to this card .
4、 persistence (Durability): After the transaction completes , All updates to the database by the transaction are saved to the database , Cannot be rolled back .
Two 、SQL Standard transaction isolation level (mysql The default is repeatable ,oracle The default is read committed )
- Read uncommitted (read uncommitted) Refer to , When a transaction has not yet been committed , The changes it makes can be seen by other things .
- Read submitted (read committed) Refer to , After a transaction is committed , The changes it makes will be seen by other things .
- Repeatable (repeatable read) Refer to , Data seen during the execution of a transaction , It is always consistent with the data seen when the transaction is started . Of course, at the level of repeatable read isolation , Uncommitted changes are also invisible to other transactions .
- Serialization (serializable ), As the name suggests, for the same line of records ,“ Write ” Will add “ Write lock ”,“ read ” Will add “ Read the lock ”. When there is a read/write lock conflict , Subsequent transactions must wait for the previous transaction to complete , To carry on That's ok .
Example
Business one | Business two |
---|---|
Start transaction A, Inquire about A=10 | Start transaction B |
Inquire about A=10, to update A=20 | |
The query value a1 | |
Commit transaction B | |
The query value a2 | |
Commit transaction A | |
The query value a3 |
If isolation level is “ Read uncommitted ”, be a1 The value is 20, although B Not submitted 2 But it turns out to be A I saw it
If isolation level is “ Read submitted ”, be a1 yes 10,a2 The value of is 2. Business B Can't be updated until it's submitted A notice . therefore , a3 The value of is also 2.
If isolation level is “ Repeatable ”, be a1、a2 yes 10,a3 yes 20. The reason a2 still 10, That's what we're following : The data that the transaction sees during execution must be consistent before and after .
If isolation level is “ Serialization ”, It's business B perform “ take A=10 Change to 20” When , Will be locked . Until transaction A After submission , Business B To continue . So from A From the perspective of , a1、a2 The value is 10,a3 The value of is 20
3、 ... and 、 How to set and view isolation level
- Read uncommitted :read uncommitted
- Read submitted :read committed
- Repeatable :repeatable read
- Serialization :serializable
Check the isolation level
show variables like 'transaction_isolation';
Set up innodb The transaction level method is :set Scope transaction isolation level Transaction isolation level , for example ~
SET [SESSION | GL.........
版权声明
本文为[Irving the procedural ape]所创,转载请带上原文链接,感谢
边栏推荐
- 2020-09-09:裸写算法:两个线程轮流打印数字1-100。
- 代码重构之法——方法重构分析
- Stickinengine architecture 11 message queue
- 事务的隔离级别与所带来的问题
- Zero basis to build a web search engine of its own
- Can you do it with only six characters?
- Ronglian completed US $125 million f round financing
- An article taught you to use HTML5 SVG tags
- A small goal in 2019 to become a blog expert of CSDN
- CCR coin frying robot: the boss of bitcoin digital currency, what you have to know
猜你喜欢
Vue communication and cross component listening state Vue communication
检测证书过期脚本
Flink's datasource Trilogy: direct API
What is the meaning of sector sealing of filecoin mining machine since the main network of filecoin was put online
Flink's datasource Trilogy 2: built in connector
ORA-02292: 违反完整约束条件 (MIDBJDEV2.SYS_C0020757) - 已找到子记录
Axios learning notes (2): easy to understand the use of XHR and how to package simple Axios
2020年第四届中国 BIM (数字建造)经理高峰论坛即将在杭举办
Ronglian completed US $125 million f round financing
2020-08-19:TCP是通过什么机制保障可靠性的?
随机推荐
What is the purchasing supplier system? Solution of purchasing supplier management platform
行为型模式之解释器模式
MongoDB与SQL常用语法对应表
Summary of front-end performance optimization that every front-end engineer should understand:
2020-09-04:函数调用约定了解么?
Using iceberg on kubernetes to create a new generation of cloud original data Lake
What is alicloud's experience of sweeping goods for 100 yuan?
Staying up late summarizes the key points of report automation, data visualization and mining, which is different from what you think
面试官: ShardingSphere 学一下吧
What the hell is fastthreadlocal? The existence of ThreadLocal!!
递归、回溯算法常用数学基础公式
Contract trading system development | construction of smart contract trading platform
Small program introduction to proficient (2): understand the four important files of small program development
2020-09-09:裸写算法:两个线程轮流打印数字1-100。
2020-08-19:TCP是通过什么机制保障可靠性的?
What is the meaning of sector sealing of filecoin mining machine since the main network of filecoin was put online
How does cglib implement multiple agents?
Digital city responds to relevant national policies and vigorously develops the construction of digital twin platform
What is the tensor in tensorflow?
Filecoin has completed a major upgrade and achieved four major project progress!