• mysql之事务


    引入事务的目的:事务会把数据库从一种一致状态转换成另一个一致状态。在数据库提交工作时,可以确保要么所有的修改都已经保存了,要么所有修改都没有保存

    事务的特性

    原子性:原子性是指整个数据库事务是不可分割的工作单位,只有使事务中所有的数据库操作执行成功,才算是整个事务成功。
    一致性:是指事务将数据库从一种状态转变为下一种一致的状态。在事务的开始之前和事务的结束之后,数据库的完整性约束没有被破坏。
    隔离性:一个事务的影响在该事务提交前对其他事务都不可见(这是通过锁来实现的)
    持久性:事务一旦提交,结果就是永久性的,即使发生死机等故障,数据库也能将数据恢复

    事务的实现

    原子性,一致性,持久性通过数据库的redo和undo来完成
    【redo】
    事务日志通过重做(redo)文件和innodb存储引擎的日志缓冲来实现。当开始一个事务的时候,会记录该事务的一个日志序列号,当事务执行的时,会往innodb存储引擎的日志缓冲里插入数据;当事务提交时,必须将innodb存储引擎的日志缓冲写入磁盘。也就是说写数据之前,先写日志,这种日志称为预日志方式
    Innodb存储引擎通过于写日志方式来保证事务的完整性,这意味着磁盘上存储的数据页和缓冲页是不同步的,对于内存缓冲中的页的修改,先是写入重做日志文件,然后再写入磁盘,因此是一种异步的方式
    【undo】
    利用undo信息可以将数据回滚到修改之前的样子。Redo存放在重做日志文件中,undo存放在数据库内部的一个特殊段。Undo段位于共享表空间

  • 相关阅读:
    js/es6判断对象是否为空,并判断对象是否包含某个属性
    Hive中的SQL执行计划--几乎所有的SQL都有
    spark中的scalaAPI之RDDAPI常用操作
    spark-scala开发的第一个程序WordCount
    linux中添加自定义命令
    kafka学习总结
    flume的sink写入hive表
    Flume架构以及应用介绍(转)
    Appache Flume 中文介绍(转)
    hiveSQL常用日期函数
  • 原文地址:https://www.cnblogs.com/hanfei-1005/p/5692544.html
Copyright © 2020-2023  润新知