当前位置:网站首页>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]所创,转载请带上原文链接,感谢
边栏推荐
- Stickinengine architecture 11 message queue
- An article will take you to understand SVG gradient knowledge
- What is the purchasing supplier system? Solution of purchasing supplier management platform
- Kubernetes and OAM to build a unified, standardized application management platform knowledge! (Internet disk link attached)
- From overseas to China, rancher wants to do research on container cloud market
- What is the tensor in tensorflow?
- Application of restful API based on MVC
- An article will introduce you to CSS3 background knowledge
- 美团内部讲座|周烜:华东师范大学的数据库系统研究
- Using iceberg on kubernetes to create a new generation of cloud original data Lake
猜你喜欢

2020-08-20:GO语言中的协程与Python中的协程的区别?

Unity performance optimization

Top 5 Chinese cloud manufacturers in 2018: Alibaba cloud, Tencent cloud, AWS, telecom, Unicom

【涂鸦物联网足迹】涂鸦云平台全景介绍

Pn8162 20W PD fast charging chip, PD fast charging charger scheme

2020-08-24:什么是小文件?很多小文件会有什么问题?很多小文件怎么解决?(大数据)

Message queue - Analysis

意外的元素..所需元素..

行为型模式之备忘录模式

image operating system windows cannot be used on this platform
随机推荐
Building a new generation cloud native data lake with iceberg on kubernetes
html+ vue.js Implementing paging compatible IE
Python basic variable type -- list analysis
Why is the LS command stuck when there are too many files?
mongo 用户权限 登录指令
Pn8162 20W PD fast charging chip, PD fast charging charger scheme
2020-09-09:裸写算法:两个线程轮流打印数字1-100。
Helping financial technology innovation and development, atfx is at the forefront of the industry
An article will take you to understand SVG gradient knowledge
ES6 learning notes (5): easy to understand ES6's built-in extension objects
【涂鸦物联网足迹】物联网基础介绍篇
What is the purchasing supplier system? Solution of purchasing supplier management platform
Zero basis to build a web search engine of its own
Axios learning notes (2): easy to understand the use of XHR and how to package simple Axios
【涂鸦物联网足迹】涂鸦云平台全景介绍
A small goal in 2019 to become a blog expert of CSDN
Staying up late summarizes the key points of report automation, data visualization and mining, which is different from what you think
MongoDB与SQL常用语法对应表
All the way, I was forced to talk about C code debugging skills and remote debugging
【学习】接口测试用例编写和测试关注点