当前位置:网站首页>MySQL transaction mvcc principle
MySQL transaction mvcc principle
2022-07-04 09:26:00 【Studious little Tao】
Let's discuss in Mysql RR and RC Under isolation level MVCC Multi version concurrency control , stay Mysql in MVCC The mechanism is to use undo log Version chain mechanism implementation ReadView Mechanism .
ReadView
ReadView What is it? , Simply speaking ,ReadView When starting a transaction , It will generate a ReadView Used to implement MVCC Mechanism . Here is ReadView Some key things contained in
- m_ids: This means at this time mysql Which transactions in the transaction have not been committed
- min_trx_id: Minimum business Id, Namely m_ids The smallest transaction in Id
- max_trx_id: The biggest business Id, Namely Mysql The next transaction to generate Id, Is the biggest thing Id
- creator_trx_id: Current affairs Id
stay Mysql There are two hidden fields behind each data row in ,trx_id and roll_pointer
- trx_id: Current data update transactions Id
- roll_pointer: Point to next undo log Version chain , Used to find undo log Data in the version chain
RC ISOLATION Realization principle
Read submitted : Transactions can only read committed data ; stay Mysql in , Each transaction query generates a new ReadView To achieve RC.
MVCC Realization RC Isolation level : Each query will generate a new Readview, Let's look at the following example
1、 Here is a piece of data in the database :
2、 If A The transaction queries the submitted data ,trx_id = 1, At this time, I will make a judgment , Just to judge trx_id Less than min_trx_id, So it proves that this data dates back to A The transaction has been committed before it starts , So you can query this data .
3、 If the transaction B(id = 25) Modified this line of data , And submitted , So this data is trx_id Will be changed to trx_id = 25, meanwhile roll_pointer Will point to trx_id = 10 That piece of data , as follows undo log Version chain . At this point, the transaction A Launch the query again , Will generate a new ReadView, So at this time trx_id stay min_trx_id and ma_trx_id Within limits , Not at the same time m_ids In the list , So it proves that this transaction change has been committed , stay RC It can be read under the isolation level .
4、 When a transaction A After modifying this data , The trx_id Changed to 20, here trx_id Although in m_ids In the list , At the same time, the current data trx_id The value of and ReadView in creator_id The value of is the same , This shows that this data is a transaction A Altered , So at this time A Transactions can be queried .
RR ISOLATION Realization principle
Repeatable : Business A Multiple queries , The result is the same ;Mysql By generating a fixed ReadView Realization RR Isolation level .
MVCC Realization RR Isolation level : Each query will be used when the transaction is opened ReadView, Let's look at the following example
1、 Here is a piece of data in the database :
2、 If the transaction A(id = 20) And is a matter B(id = 25) Open the transaction at the same time , Well, at this time ReadView yes :
3、 If the transaction A(id = 20) Open query , Find current data trx_id = 10, Less than min_trx_id, So it means that this data is in the transaction A Submitted before opening , So this data can be queried .
4、 If the transaction B(id = 25) Changed data , So at this point trx_id = 25, By looking at A Of ReadView You can see ,trx_id = 25 stay m_ids In the list , So it explains the transaction B And business A Is a transaction started at the same time , So in RR It cannot be queried under the isolation level .
5、 If the transaction A(id = 20) Changed this data again , So at this time trx_id = 20, By looking at A Of ReadView You can see ,trx_id = 20 stay m_ids In the list , however trx_id = 20 And A Of ReadView in creator_trx_id The value of is the same , So this data is A The transaction itself changes , So it can be queried .
6、 If there is a new transaction at this time C(id = 30) Changed this data , So at this time trx_id = 30, By inquiring ReadView You can see ,trx_id = 30 No longer m_ids In the list , however trx_id Greater than max_trx_id, So it means that this data is in A Started after the transaction is started , Therefore, it is impossible to query .
summary
The above mainly introduces MVCC Realization RR and RC Implementation of isolation level , Rookie learning summary , Bosses do not spray .
边栏推荐
- Global and Chinese market of wheel hubs 2022-2028: Research Report on technology, participants, trends, market size and share
- Lauchpad X | 模式
- How do microservices aggregate API documents? This wave of show~
- Jianzhi offer 09 realizes queue with two stacks
- Trim leading or trailing characters from strings- Trim leading or trailing characters from a string?
- 2022-2028 global elastic strain sensor industry research and trend analysis report
- 2022-2028 global visual quality analyzer industry research and trend analysis report
- A subclass must use the super keyword to call the methods of its parent class
- Horizon sunrise X3 PI (I) first boot details
- Launchpad x | mode
猜你喜欢

GoLand environment variable configuration

2022-2028 global tensile strain sensor industry research and trend analysis report

What exactly is DAAS data as a service? Don't be misled by other DAAS concepts

HMS core helps baby bus show high-quality children's digital content to global developers

MySQL foundation 02 - installing MySQL in non docker version

165 webmaster online toolbox website source code / hare online tool system v2.2.7 Chinese version

How does idea withdraw code from remote push
![Reload CUDA and cudnn (for tensorflow and pytorch) [personal sorting summary]](/img/3f/a71b56a62d2a0d64749a6af05384f5.jpg)
Reload CUDA and cudnn (for tensorflow and pytorch) [personal sorting summary]

Explain TCP protocol in detail three handshakes and four waves

2022-2028 global intelligent interactive tablet industry research and trend analysis report
随机推荐
2022-2028 global small batch batch batch furnace industry research and trend analysis report
Research and investment strategy report of China's electronic hydrogen peroxide industry (2022 Edition)
Launchpad x | mode
Dynamic analysis and development prospect prediction report of high purity manganese dioxide in the world and China Ⓡ 2022 ~ 2027
Basic data types in golang
ArrayBuffer
Review of last week's hot spots (6.27-7.3)
Global and Chinese market of wheel hubs 2022-2028: Research Report on technology, participants, trends, market size and share
Live in a dream, only do things you don't say
Global and Chinese market of sampler 2022-2028: Research Report on technology, participants, trends, market size and share
In depth research and investment strategy report on China's hydraulic parts industry (2022 Edition)
老掉牙的 synchronized 锁优化,一次给你讲清楚!
Report on research and investment prospects of polyglycolic acid industry in China (2022 Edition)
The old-fashioned synchronized lock optimization will make it clear to you at once!
China battery grade manganese sulfate Market Forecast and strategic consulting report (2022 Edition)
1211 or chicken and rabbit in the same cage
C语言-入门-基础-语法-[运算符,类型转换](六)
Latex download installation record
地平线 旭日X3 PI (一)首次开机细节
After unplugging the network cable, does the original TCP connection still exist?