目录 一、事务特性 1.原子性 2.一致性 3.隔离性 4.持久性 二、并发问题 1.更新丢失 2.脏读 3.不可重复读 4.幻读 三、隔离级别 1.未提交读(read-uncommitted) 2.已提交读(read-committed) 3.可重复读(repetable-read) 4.可串行化 ...
分类:
数据库 时间:
2020-07-10 00:44:07
阅读次数:
85
数据库事务的隔离级别 数据库事务的隔离级别有4个,由低到高依次为Read uncommitted 、Read committed 、Repeatable read 、Serializable ,这四个级别可以逐个解决脏读 、不可重复读 、幻读这几类问题。 Read UnCommitted(读未提交) ...
分类:
其他好文 时间:
2020-05-30 12:31:36
阅读次数:
68
在读未提交的隔离级别,使用update set更新字段时配合if语句的问题 update user_amount set frozen = frozen - if(5000 > frozen, frozen, 5000) , balance = balance + if( 5000 > frozen ...
分类:
其他好文 时间:
2020-05-22 10:04:49
阅读次数:
77
数据库四大特性和事务隔离级别 数据库中经常被问到四大特性和隔离级别,一般都是涉及到概念性问题,在此做一些整理总结,方便理解。 1、事务的隔离级别 由低到高依次为Read uncommitted(未授权读取、读未提交)、Read committed(授权读取、读提交)、Repeatable read( ...
分类:
数据库 时间:
2020-05-18 16:16:05
阅读次数:
66
多版本并发控制(Multi-Version Concurrency Control)是MySQL的InnoDB引擎实现隔离级别的一种具体方式。 它可以实现提交读和可重复读两种级别的隔离。 未提交读太简单,不需要用MVCC,可串行化太难,只用MVCC解决不了。 MVCC的基本思想: 在读写锁中,读和读 ...
分类:
数据库 时间:
2020-05-14 01:17:48
阅读次数:
70
MySQL InnoDB事务的隔离级别有四级,默认是“可重复读”(REPEATABLE READ)。 未提交读(READ UNCOMMITTED)。另一个事务修改了数据,但尚未提交,而本事务中的SELECT会读到这些未被提交的数据(脏读)。 提交读(READ COMMITTED)。本事务读取到的是最 ...
分类:
数据库 时间:
2020-05-04 00:44:06
阅读次数:
91
为什么要使用锁 加入甲乙同时下单购买商品A,下单前查询库存数量都是15,在下单的时候,甲下单更快,买走了10件。而乙下单时,还是以库存15来判断,这样就会出现数据错误。 在创建订单时候,假设有人和你同时对商品数量进行操作,要保证数据是安全的,可以使用乐观锁。在更新商品数量的时候,需要判断一下还是不是 ...
分类:
其他好文 时间:
2020-04-20 01:27:31
阅读次数:
140
1、事务 (1)概念 一组业务操作,要求要么全不成功,要么全部不成功 (2)特性(ACID) 原子性、一致性、隔离性、持久性 (3)隔离问题 脏读 不可重复读 幻读 (4)隔离级别 read uncommitted:读未提交,存在三个问题 read committed:读已提交,解决了脏读,存在两个 ...
分类:
编程语言 时间:
2020-04-17 20:10:29
阅读次数:
66
并发导致数据出现的问题1.脏读(Drity Read)释义:已知有两个事务A和B, A读取了已经被B更新但还没有被提交的数据,之后,B回滚事务,A读取的数据就是脏数据。注:即事务b读取了事务a在内存中修改的数据(未提交写入数据库的磁盘)即READ_UNCOMMITTED(读未提交隔离机制)即可发生的 ...
分类:
数据库 时间:
2020-04-13 21:10:25
阅读次数:
99
一、四种事务隔离级别 1.1 read uncommitted 读未提交 即:事务A可以读取到事务B已修改但未提交的数据。 除非是文章阅读量,每次+1这种无关痛痒的场景,一般业务系统没有人会使用该事务隔离级别,标准实在太宽松了。 1.2 read committed 读已提交(简称RC) 即:事务A ...
分类:
数据库 时间:
2020-04-06 20:28:55
阅读次数:
121