美文网首页
数据库本地事务

数据库本地事务

作者: Fred_wdl | 来源:发表于2018-08-21 19:53 被阅读0次

    做为一个码农,每天就是写写BUG这样子,最近遇到了一个问题,发现自己对数据库事务的理解不太够,找来相关内容,重新复习了一下,整理出来,和大家分享。

    说到数据库的事务,就不得不说事务的四大特性:ACID

    A:原子性(Atomicity)

    一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。

    就像转账,要么转账成功:你扣钱对方加钱,要么失败:你没扣钱对方也没加,不可能你扣了钱,对方却没收到,那就出大问题了。

    C:一致性(Consistency)

    事务的一致性指的是在一个事务执行之前和执行之后数据库都必须处于一致性状态。如果事务成功地完成,那么系统中所有变化将正确地应用,系统处于有效状态。如果在事务中出现错误,那么系统中的所有变化将自动地回滚,系统返回到原始状态。

    I:隔离性(Isolation)

    指的是在并发环境中,当不同的事务同时操纵相同的数据时,每个事务都有各自的完整数据空间。由并发事务所做的修改必须与任何其他并发事务所做的修改隔离。事务查看数据更新时,数据所处的状态要么是另一事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看到中间状态的数据。

    D:持久性(Durability)

指的是只要事务成功结束,它对数据库所做的更新就必须永久保存下来。即使发生系统崩溃,重新启动数据库系统后,数据库还能恢复到事务成功结束时的状态。

    事务的ACID是靠日志和锁保证的。

    持久性通过Redolog 实现,事务提交之前,现将Redlog持久化,即使系统崩溃,提交失败了,系统重启后,也可以根据Redolog,将数据恢复到最新的状态。

    原子性和一致性通过UndoLog实现,操作开始之前,先将旧数据备份,如果操作出错或者用户执行了Rollback,就根据UndoLod将数据恢复至事务开始之前的状态。

    隔离性是通过数据库锁实现的,隔离有不同的级别,需要了解几个数据库的基本概念:

    1. 脏读

    一个事务读取到另一个事务未提交的更新数据。

    2.不可重复读

    在同一个事务中,多次读取同一数据返回的结果不同,和脏读不同的是这里读取的是已经提交过后的。

     3.幻读

    一个事务读到另一个事务已提交的insert数据。

具体的隔离级别如下:

隔离级别

    串行化是隔离级别最高的,但是在高并发环境中,会严重影响系统性能,需谨慎使用。

    以上就是关于数据库事务的一些基本知识。

相关文章

  • 分布式事务

    一、什么是事务 要么都成功,要么都失败 1. 本地事务 用关系型数据库控制事务,基于关系型数据库的事务被称为本地事...

  • 【Java面试题】阿里java面试题

    编号题目备注1分布式事务、本地事务区别本地事务:对单个服务、单个数据库访问的事务;分布式事务:指事务的参与者、支持...

  • 消息中间件实现分布式事务

    理论基础 什么是分布式事务 传统的事务是基于单数据库的本地事务,简单的来说,分布式事务就是实现跨数据库的事务支持 ...

  • 关于Spring事物哪些事儿

    1、Spring 事务概述 本地事务(区别于分布式事务)也叫数据库事务,MySQL的InnoDB存储引擎就已经支持...

  • 数据库事务书目录

    数据库事务 事务概念 本地事务 全局事务 全局事务的定义 J2EE中全局事务的实现 全局事务的优缺点 基于消息的分...

  • 分布式事务

    本地事务 在计算机系统中,更多的是通过关系型数据库来控制事务,这是利用数据库本身的事务特性来实现的,因此叫数据库事...

  • 分布式事务入门篇

    本地事务本地事务,即单体应用中单个线程内对一个数据库的事务提交。例如充值操作,充值成功后订单表状态更新为成功,账户...

  • 数据库本地事务

    做为一个码农,每天就是写写BUG这样子,最近遇到了一个问题,发现自己对数据库事务的理解不太够,找来相关内容,重新复...

  • 「要点解析」分布式高级商城业务:分布式事务,满足你的好奇心

    订单服务—分布式事务 本地事务 事务的基本性质 数据库事务的几个特性:原子性(Atomicity)、一致性(Con...

  • 「要点解析」分布式高级商城业务:分布式事务,满足你的好奇心

    订单服务—分布式事务 本地事务 事务的基本性质 数据库事务的几个特性:原子性(Atomicity)、一致性(Con...

网友评论

      本文标题:数据库本地事务

      本文链接:https://www.haomeiwen.com/subject/hxxsiftx.html