当前位置:网站首页>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-04:函数调用约定了解么?
- Ronglian completed US $125 million f round financing
- The role of theme music in games
- Contract trading system development | construction of smart contract trading platform
- ES6 learning notes (4): easy to understand the new grammar of ES6
- 嘉宾专访|2020 PostgreSQL亚洲大会阿里云数据库专场:王涛
- 代码重构之法——方法重构分析
- What grammar is it? ]
- 【涂鸦物联网足迹】物联网基础介绍篇
- 细数软件工程----各阶段必不可少的那些图
猜你喜欢

事务的本质和死锁的原理

2020年第四届中国 BIM (数字建造)经理高峰论坛即将在杭举办

Novice guidance and event management system in game development

EOS founder BM: what's the difference between UE, UBI and URI?

What are the highlights of Huawei mate 40 series with HMS?

MongoDB与SQL常用语法对应表

Those who have worked in China for six years and a million annual salary want to share these four points with you

GitHub: the foundation of the front end

Markdown tricks

Description of phpshe SMS plug-in
随机推荐
MongoDB与SQL常用语法对应表
2020-08-24:什么是小文件?很多小文件会有什么问题?很多小文件怎么解决?(大数据)
An article takes you to understand CSS gradient knowledge
【学习】接口测试用例编写和测试关注点
Understanding formatting principles
git远程库回退指定版本
Look! Internet, e-commerce offline big data analysis best practice! (Internet disk link attached)
2020-08-19:TCP是通过什么机制保障可靠性的?
Code generator plug-in and creator preform file analysis
谷歌浏览器实现视频播放加速功能
Message queue - Analysis
The legality of IPFs / filecoin: protecting personal privacy from disclosure
EOS founder BM: what's the difference between UE, UBI and URI?
Python 100 cases
代码重构之法——方法重构分析
Visual rolling [contrast beauty]
Event monitoring problem
意派Epub360丨你想要的H5模板都在这里,电子书、大转盘、红包雨、问卷调查……
预留电池接口,内置充放电电路及电量计,迅为助力轻松搞定手持应用
An article takes you to understand CSS3 picture border