当前位置:网站首页>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]所创,转载请带上原文链接,感谢
边栏推荐
- How much disk space does a new empty file take?
- Helping financial technology innovation and development, atfx is at the forefront of the industry
- How much disk space does a file of 1 byte actually occupy
- How to make characters move
- IPFs rudder filecoin landing at the same time, fil currency price broke a thousand
- CCR coin frying robot: the boss of bitcoin digital currency, what you have to know
- An article will take you to understand SVG gradient knowledge
- An article takes you to understand CSS pagination examples
- Behind the record breaking Q2 revenue of Alibaba cloud, the cloud opening mode is reshaping
- 2020-08-18:介绍下MR过程?
猜你喜欢
Flink's datasource Trilogy: direct API
Junit测试出现 empty test suite
Top 5 Chinese cloud manufacturers in 2018: Alibaba cloud, Tencent cloud, AWS, telecom, Unicom
Python basic data type -- tuple analysis
From overseas to China, rancher wants to do research on container cloud market
[forward] how to view UserData in Lua
Stickinengine architecture 12 communication protocol
递归、回溯算法常用数学基础公式
An article will take you to understand CSS3 fillet knowledge
[self taught unity2d legendary game development] map editor
随机推荐
git远程库回退指定版本
2020-08-29:进程线程的区别,除了包含关系之外的一些区别,底层详细信息?
Top 5 Chinese cloud manufacturers in 2018: Alibaba cloud, Tencent cloud, AWS, telecom, Unicom
Code generator plug-in and creator preform file analysis
Road to simple HTML + JS to achieve the most simple game Tetris
How does cglib implement multiple agents?
The method of realizing high SLO on large scale kubernetes cluster
With this artifact, quickly say goodbye to spam messages
面试官: ShardingSphere 学一下吧
Zero basis to build a web search engine of its own
The native API of the future trend of the front end: web components
ES6 learning notes (5): easy to understand ES6's built-in extension objects
Digital city responds to relevant national policies and vigorously develops the construction of digital twin platform
大会倒计时|2020 PostgreSQL亚洲大会-中文分论坛议程安排
Basic usage of Vue codemirror: search function, code folding function, get editor value and verify in time
IPFs rudder filecoin landing at the same time, fil currency price broke a thousand
Will blockchain be the antidote to the global epidemic accelerating the transformation of Internet enterprises?
An article taught you to download cool dog music using Python web crawler
All the way, I was forced to talk about C code debugging skills and remote debugging
Some operations kept in mind by the front end foundation GitHub warehouse management