当前位置:网站首页>数据库隔离级别
数据库隔离级别
2022-07-06 06:08:00 【雪峰.贵】
根据并发情况引起的问题,修改隔离级别来避免。
一、更新丢失:
背景:隔离级别:READ-UNCOMMITED
由于取款事务回滚,导致把存款事务修改的数据覆盖了。出现了更新丢失。
解决:因InnoDB会给我们加锁,所以当今这种情况不会发生。
二、脏读
背景:隔离级别:READ-UNCOMMITTED
由于读了未提交事务的数据,导致异常。
某人有1000元。
取款事务读到了1000。
取款事务扣100元剩900元。
存款事务读到了900元。
取款事务回滚了,剩1000 。
存款事务用读到的900+1000,剩1900元。
取款取消了,导致最终存款少了100。
解决:设置隔离级别:set session transation isolation level read committed;
隔离级别:READ-COMMITTED
某人有1000元。
取款事务读到了1000。
取款事务扣100元剩900元。
存款事务读到了1000元。
取款事务回滚了,剩1000 。
存款事务用读到的1000+1000,剩2000元。
取款取消了,未影响数据的正确性。
三、不可重复读
背景:隔离级别:READ-COMMITTED
事务A多次读数据,事务B在事务A多次读的过程中修改了数据并提交了。导致事务A每次读到的数据不一样。
事务A读到了1000元。
事务B读到了1000元。加1000,剩2000。
事务A又读到了1000元。(因隔离级别为READ-COMMITTED)
事务B提交。
事务A读到了2000。导致前后两次读到的数据不一样。
解决:设置隔离级别:set session transation isolation level repeatable read;
隔离级别:REPEATABLE-READ
事务A读到了1000元。
事务B读到了1000元。加1000,剩2000。
事务A又读到了1000元。(因隔离级别为READ-COMMITTED)
事务B提交。
事务A读到了1000。前后两次读到的数据一样。
即:当前事务不管别的事务怎么修改提交,自己还是用的自己那份数据。
四、幻读
背景:隔离级别:REPEATABLE-READ
事务A当前查询到了4条数据。
事务B 插入\删除 一条数据,提交。
事务A更新数据,发现更新了5条\3条。好像出现了幻觉。
解决:设置隔离级别:set session transation isolation level serializable;
隔离级别:SERIALIZABLE
即:串行。但是会影响并发效率。
总结
边栏推荐
- Buuctf-[bjdctf2020]zjctf, but so (xiaoyute detailed explanation)
- [Thesis code] SML part code reading
- LeetCode 732. 我的日程安排表 III
- ContentType的作用
- The latest 2022 review of "graph classification research"
- [eolink] PC client installation
- 技术分享 | 常见接口协议解析
- Huawei BFD configuration specification
- Request forwarding and redirection
- HCIA review
猜你喜欢
黑猫带你学eMMC协议第10篇:eMMC读写操作详解(read & write)
Fault, error, failure of functional safety
Database: ODBC remote access SQL Server2008 in oracel
Web service connector: Servlet
10M25DCF484C8G(FPGA) AMY-6M-0002 BGA GPS模块
Overview of three core areas of Mathematics: algebra
【Postman】Collections配置运行过程
单元测试的意义
误差的基本知识
Arrays and collections
随机推荐
LeetCode 732. 我的日程安排表 III
Request forwarding and redirection
Dynamic programming -- knapsack problem
曼哈顿距离与曼哈顿矩形-打印回字型矩阵
【Postman】Collections-运行配置之导入数据文件
Thoughts on data security (Reprint)
[wechat applet] build a development tool environment
单元测试的意义
HCIA复习
Introduction to promql of # yyds dry goods inventory # Prometheus
Detailed explanation of BF and KMP
Web service connector: Servlet
Testing and debugging of multithreaded applications
Basic knowledge of error
MySQL之基础知识
Novice entry SCM must understand those things
测试周期被压缩?教你9个方法去应对
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
How Huawei routers configure static routes
Overview of three core areas of Mathematics: algebra