Administrator
发布于 2025-11-25 / 1 阅读
0

数据库事务

数据库事务

数据库事务机制是至关重要的,它能够帮助我们在一定程度上保证数据的一致性,并且有效提高系统性能,避免系统产生岩机。

数据库事务属性都可以由 @transaction来配置。

数据库事务基本特征

  • Atomic (原子性):事务中包含的操作被看作一个整体的业务单元,这个业务单元中的操作 要么全部成功,要么全部失败,不会出现部分失败、部分成功的场景。
  • Consistency (一致性):事务在完成时,必须使所有的数据都保持一致状态,在数据库中所有的修改都基于事务,保证了数据的完整性。
  • Isolation (隔离性):这是我们讨论的核心内容,正如上述,可能多个应用程序线程同时访问数据,这样数据库同样的数据就会在各个不同的事务中被访问,这样会产生丢失更新。 为了压制丢失更新的产生,数据库定义了隔离级别的概念,通过它的选择,可以在不同程度上压制丢失更新的发生。因为互联网的应用常常面对高并发的场景,所以隔离性是需要掌握的重点内容。
  • Durability (持久性):事务结束后,所有的数据会固化到一个地方,如保存到磁盘当中,即 使断电重启后也可以提供给应用程序访问。

4类隔离级别

  • 未提交读:其含义是允许一个事务读取另外一个事务没有提交的数据。未提交读是一种危险的隔离级别,所以一般在我们实际的开发应用不广,但是它的优点在于并发能力高,适合那些对数据一致性没有要求而追求高并发的场景 ,它最大坏处是出现脏读。
  • 读写提交:是指一个事务只能读取另外一个事务已经提交的数据,不能读取未提交的数据。
  • 可重复读:就是当一个事务对记录进行修改时,其他事务不能对该记录进行读。
  • 串行化:要求所有的 SQL 都会按照顺序执行,这样就可以克服上述隔离级别出现的各种问题,所以它能够完全保证数据的一致性。