事务的特性

事务的特性

原子性:原子性对应的英文是Atomicity,即表示事务中所有操作是不可再分割的原子单位。事务中所有操作要么全

部执行成功,要么全部执行失败;

一致性:一致性对应的英文是Consistency,事务执行后,数据库状态与其它业务规则保持一致。例如转账业务,无

论事务执行成功与否,参与转账的两个账号余额之和应该是不变的;

隔离性:隔离性对应的英文是Isolation,是指在并发操作中,不同事务之间应该隔离开来,使每个并发中的事务不

会相互干扰;

持久性:持久性对应的英文是Durability,指的是一旦事务提交成功,事务中所有的数据操作都必须被持久化到数据

库中,即使提交事务后,数据库马上崩溃,在数据库重启时,也必须能保证通过某种机制恢复数据

1.事务的特性

* 原子性 ‐‐ 强调的是事务的不可分割的特性

* 一致性 ‐‐ 强调的是事务执行前后数据需要保证一致

* 隔离性 ‐‐ 强调的是多个事务同时操作一条记录,事务之间不能互相干扰

* 持久性 ‐‐ 强调的是事务一旦结束了,数据将永久的保存到数据库中

2.这些特性都是数据库提供的

不考虑事务的隔离性会引发的问题:

1.脏读:一个事务读取到了另一个事务未提交的数据!

2.不可重复读:一个事务读取到了另一个事务提交的数据,导致了多次查询的结果不一致。强调的是update,修改记录

的数据。

3.虚度(幻读):一个事务读取到了另一个事务提交的数据,导致了多次查询的结果不一致。强调是insert,向表中添

加一条数据。

设置事务的隔离级别(解决读的问题) :

1.事务的隔离级别(设置数据库的隔离级别,根据级别的不同,解决上述的读的问题)

* Read uncommitted ‐‐ 什么都解决不了

* Read committed ‐‐ 避免脏读,但是不可重复读和虚读有可能产生

* Repeatable read ‐‐ 避免脏读和不可重复读,虚度有可能产生的

* Serializable ‐‐ 避免各种读

2.4种隔离级别有安全性和效率

* 安全 Serializable > Repeatable read > Read committed > Read uncommitted

* 效率 Serializable < Repeatable read < Read committed < Read uncommitted

3.数据库都有自己默认的隔离级别

* MySQL的数据库,默认的隔离级别是Repeatable read,避免脏读和不可重复读

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值