美文网首页
mysql事物属性

mysql事物属性

作者: 原上野 | 来源:发表于2019-05-09 16:55 被阅读0次

事物

一、事务四大属性

分别是原子性、一致性、隔离性、持久性。

1、原子性(Atomicity)

原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。

2、一致性(Consistency)

一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执行之前和执行之后都必须处于一致性状态。举例来说,假设用户A和用户B两者的钱加起来一共是1000,那么不管A和B之间如何转账、转几次账,事务结束后两个用户的钱相加起来应该还得是1000,这就是事务的一致性。

3、隔离性(Isolation)

隔离性是当多个用户并发访问数据库时,比如同时操作同一张表时,数据库为每一个用户开启的事务,不能被其他事务的操作所干扰,多个并发事务之间要相互隔离。关于事务的隔离性数据库提供了多种隔离级别,稍后会介绍到。

4、持久性(Durability)

持久性是指一个事务一旦被提交了,那么对数据库中的数据的改变就是永久性的,即便是在数据库系统遇到故障的情况下也不会丢失提交事务的操作。例如我们在使用JDBC操作数据库时,在提交事务方法后,提示用户事务操作完成,当我们程序执行完成直到看到提示后,就可以认定事务已经正确提交,即使这时候数据库出现了问题,也必须要将我们的事务完全执行完成。否则的话就会造成我们虽然看到提示事务处理完毕,但是数据库因为故障而没有执行事务的重大错误。这是不允许的。

二 、undo和redo

1、Undo Log的原理很简单,为了满足事务的原子性,在操作任何数据之前,首先将数据备份到一个地方

  (这个存储数据备份的地方称为Undo Log)。然后进行数据的修改。如果出现了错误或者用户执行了

  ROLLBACK语句,系统可以利用Undo Log中的备份将数据恢复到事务开始之前的状态。

 2、redo log和Undo Log相反,Redo Log记录的是新数据的备份。在事务提交前,只要将Redo Log持久化即可,

  不需要将数据持久化。当系统崩溃时,虽然数据没有持久化,但是Redo Log已经持久化。系统可以根据

  Redo Log的内容,将所有数据恢复到最新的状态。

3、undo保证事物的原子性,redo保证事物的持久性

相关文章

  • mysql事物属性

    事物 一、事务四大属性 分别是原子性、一致性、隔离性、持久性。 1、原子性(Atomicity) 原子性是指事务包...

  • MySql事物

    在 MySQL 中只有使用了 Innodb 数据库引擎的数据库或表才支持事务。 一般来说,事务是必须满足4个条件(...

  • mysql事物

    1、一天sql语句就是一条事物默认开启默认提交2、可以显示的开启事务、回滚事物、提交事务2.1、开启事务 star...

  • mysql 事物

    来源:转载 MySQL的事务支持不是绑定在MySQL服务器本身,而是与存储引擎相关1.MyISAM:不支持事务,用...

  • MYSQL 事物

    前言 这篇文章主要是讲解 MYSQL 事物相关知识。 什么是 MYSQL ? MySQL 是一个关系型数据库管理系...

  • Mysql事物

    事务的特点: //ACID 不考虑隔离性, 有可能出现以下问题 考虑隔离性:

  • 论事物属性

    给医生以刀具,可以救人, 给屠夫以刀具,可以杀猪, 给狂徒以刀具,可以杀人。 刀具本身并没有错, 错的是人本。 仁...

  • Redis 学习笔记1 - 安装 Redis

    0. 背景 关系型数据库 mysql 通过多个数据表表达事物属性和属性之间的关系,它的一个特点是“用 表 的数据结...

  • mysql 基础

    MySQL ACID、事物隔离、锁、SQL优化 ACID 是数据库事务的一组属性,旨在即使在发生错误、电源故障等情...

  • spring事物

    1、事物属性 事物属性主要是通过TransactionDefinition接口实现定义,主要有事物的隔离级别,事物...

网友评论

      本文标题:mysql事物属性

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