事务的四大特性及实现原理

本文介绍了MySQL事务的四大特性及实现原理。原子性指操作要么全成功要么全失败,通过undo log实现回滚;一致性要求数据库完整性约束不被破坏;隔离性确保多事务操作互不干扰;持久性保证事务提交后结果永久保存,通过redo log实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

事务的四大特性及实现原理

1.原子性(Atomicity)
不可再分,事务的最小单位。在一个事务中,我们对数据库的操作,要么都成功,要么都失败,不可能出现部分成功或部分失败的情况。若操作失败必须回滚。
原子性在innodb是通过undo log实现的,它记录了数据修改之前的值(逻辑日志),一旦发生异常,就可以用undo log实现回滚的操作。
2.一致性(Consistency)
指的是数据库的完整性约束没有被破环,事务执行的前后都是合法的数据状态。比如主键必须是唯一,字段长度符合要求。除了数据库自身的完整性约束,还有事用户自定义的完整性。
3.隔离性(Isolation)
有了事务的定义之后,在数据库里面会有很多事务同时去操作我们的同一张表或同一行数据,必然会产生一些并发或干扰操作,那么我们对隔离性的定义,就是这些很多个事务对同表同行的操作应该是透明的,互不干扰的。通过这种方式,我们最终也是保证业务数据的一致性。
4.持久性(durability)
我们对数据库的任意操作,增删改,只要事务提交成功后,那么结果就是永久性的,不可能因为系统宕机或重启数据库的服务器恢复到原来的状态。这就是事务的持久性。
持久性是通过redo log来实现的,我们操作数据时,会先写到内存中的bufferpool中,同时记录redo log,如果在刷盘前出现异常,在重启后就可以读取redo log的内容,写入到磁盘,保证数据的持久性。

原子性,隔离性,持久性,最后都是为了实现一致性!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值