当前位置:网站首页>Database isolation level
Database isolation level
2022-07-06 06:15:00 【Snow peak expensive】
According to the problems caused by concurrency , Modify the isolation level to avoid .
One 、 Update missing :
background : Isolation level :READ-UNCOMMITED

Due to withdrawal transaction rollback , As a result, the modified data of the deposit transaction is overwritten . An update was lost .
solve : because InnoDB Will lock us , So this situation will not happen today .
Two 、 Dirty reading
background : Isolation level :READ-UNCOMMITTED
Due to reading the data of uncommitted transactions , Cause exception .
Someone has 1000 element .
I read about the withdrawal transaction 1000.
Withdrawal transaction deduction 100 Yuan Yu 900 element .
I read about the deposit transaction 900 element .
The withdrawal transaction rolled back , Remnant 1000 .
Deposit transactions with read 900+1000, Remnant 1900 element .
The withdrawal was cancelled , Resulting in less deposits 100.
solve : Set isolation level :set session transation isolation level read committed;
Isolation level :READ-COMMITTED
Someone has 1000 element .
I read about the withdrawal transaction 1000.
Withdrawal transaction deduction 100 Yuan Yu 900 element .
I read about the deposit transaction 1000 element .
The withdrawal transaction rolled back , Remnant 1000 .
Deposit transactions with read 1000+1000, Remnant 2000 element .
The withdrawal was cancelled , The correctness of the data is not affected .
3、 ... and 、 It can't be read repeatedly
background : Isolation level :READ-COMMITTED
Business A Read data multiple times , Business B In the transaction A In the process of reading many times, the data is modified and submitted . Cause transaction A The data read each time is different .
Business A I read 1000 element .
Business B I read 1000 element . Add 1000, Remnant 2000.
Business A I read again 1000 element .( Because the isolation level is READ-COMMITTED)
Business B Submit .
Business A I read 2000. As a result, the data read before and after are different .
solve : Set isolation level :set session transation isolation level repeatable read;
Isolation level :REPEATABLE-READ
Business A I read 1000 element .
Business B I read 1000 element . Add 1000, Remnant 2000.
Business A I read again 1000 element .( Because the isolation level is READ-COMMITTED)
Business B Submit .
Business A I read 1000. The data read before and after are the same .
namely : The current transaction is submitted regardless of how other transactions are modified , I still use my own data .
Four 、 Fantasy reading
background : Isolation level :REPEATABLE-READ
Business A Currently, we have found 4 Data .
Business B Insert \ Delete A piece of data , Submit .
Business A Update data , Found an update 5 strip \3 strip . There seems to be an illusion .
solve : Set isolation level :set session transation isolation level serializable;
Isolation level :SERIALIZABLE
namely : Serial . But it will affect the concurrency efficiency .
summary

边栏推荐
猜你喜欢

LeetCode 732. 我的日程安排表 III

CoordinatorLayout+NestedScrollView+RecyclerView 上拉底部显示不全

Seven imperceptible truths in software testing

Postman核心功能解析-参数化和测试报告

Caused by:org.gradle.api.internal.plugins . PluginApplicationException: Failed to apply plugin

MPLS test report

10M25DCF484C8G(FPGA) AMY-6M-0002 BGA GPS模块

技术分享 | 常见接口协议解析

浅谈专项测试之弱网络测试

假设检验学习笔记
随机推荐
Overview of three core areas of Mathematics: geometry
PAT(乙级)2022年夏季考试
误差的基本知识
Win10 cannot operate (delete, cut) files
Accélération de la lecture vidéo de l'entreprise
2022 software testing workflow to know
[untitled]
黑猫带你学UFS协议第4篇:UFS协议栈详解
Introduction to promql of # yyds dry goods inventory # Prometheus
【API接口工具】postman-界面使用介绍
Usage of test macro of GTEST
IP day 16 VLAN MPLS configuration
The ECU of 21 Audi q5l 45tfsi brushes is upgraded to master special adjustment, and the horsepower is safely and stably increased to 305 horsepower
Caused by:org.gradle.api.internal.plugins . PluginApplicationException: Failed to apply plugin
Expose the serial fraudster Liu Qing in the currency circle, and default hundreds of millions of Cheng Laolai
Detailed explanation of BF and KMP
Significance of unit testing
對數據安全的思考(轉載)
Isam2 and incrementalfixedlagsmooth instructions in gtsam
Buuctf-[[gwctf 2019] I have a database (xiaoyute detailed explanation)