transactional底层原理

transactional底层原理


2024年4月15日发(作者:硬盘修复命令chkdsk)

transactional底层原理

Transaction(事务)是数据库中一组交互操作的单元,它是用于维护数据库一致性

的机制。一个事务中包含多个数据库操作,所有的操作被看作一个整体,必须保证所有的

操作都被成功执行,否则整个事务就会被回滚(Rollback)到执行前的状态,这样可以有

效的维护数据库的完整性和一致性。

Transaction底层原理主要包括两个部分:ACID和Isolation Level。

1. ACID

ACID是事务的四个特征,分别是原子性(Atomicity)、一致性(Consistency)、隔

离性(Isolation)和持久性(Durability)。

原子性(Atomicity):指事务中的操作要么全部执行成功,要么全部执行失败,事

务中的操作是不可分割的单元。

一致性(Consistency):指事务的执行必须保证数据库的状态从一个一致性状态变

换到另一个一致性状态,也就是说一个事务执行之后,数据库中的数据必须是合法的,不

会破坏约束条件。

隔离性(Isolation):指并发执行的事务之间要相互隔离,原来并发执行的多个操

作被串行化执行,不会出现多个操作同时修改同一个数据的情况。

持久性(Durability):指事务一旦提交,它所做的修改就应该永久保存在数据库中,

即使系统崩溃也不应该有数据丢失。

2. Isolation Level

Isolation Level是指在一个事务中,不同的操作之间的可见性和并发性的控制。在

Isolation Level的不同级别下,同一个数据库的不同事务之间的交互和操作都会有不同

的规则和限制。

在SQL标准中,Isolation Level主要分为4级:Read Uncommitted,Read

Committed,Repeatable Read和Serializable。

(1)Read Uncommitted:读未提交

在Read Uncommitted级别下,一个事务可以读取另一个事务尚未提交的数据。这个

级别没有实现隔离性,允许脏读,因此很少被使用。

在Read Committed级别下,一个事务只能读取已经提交的数据,这样可以避免脏读

的情况发生。但是,可能会发生不可重复读和幻读的情况。

不可重复读指的是一个事务中多次读取同一行数据,结果不同。幻读指的是一个事务

中读取了某一行数据,但是在接下来的操作中发现这一行数据被其他事务修改或删除了。

(3)Repeatable Read:可重复读

(4)Serializable:串行化

在Serializable级别下,一个事务的读写操作是串行化的,每个事务之间都是互相

独立的,不存在并发的情况。因此,Serializable级别下可以完全避免脏读、不可重复读

和幻读的情况。但是,在高并发的情况下,Serializable级别会导致严重的性能问题,因

此一般不建议使用。

总结

Transaction底层原理包括ACID和Isolation Level两个部分。ACID是指事务的四

个特征,包括原子性、一致性、隔离性和持久性。Isolation Level是指在一个事务中,

不同的操作之间的可见性和并发性的控制,包括Read Uncommitted、Read Committed、

Repeatable Read和Serializable四个级别。在合适的Isolation Level下,可以保证事

务的一致性和完整性,同时提高数据库的性能。


发布者:admin,转转请注明出处:http://www.yc00.com/xitong/1713195505a2201742.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信