数据库事务和锁(二)

原创 2004年01月16日 10:18:00

事务的工作原理图

事务确保数据的一致性和可恢复性。事务的工作原理如图1所示。

0522c-1.gif

图1   事务的工作原理图

    事务开始之后,事务所有的操作都陆续写到事务日志中。写到日志中的操作,一般有两种:一种是针对数据的操作,一种是针对任务的操作。针对数据的操作,例如插入、删除和修改,这是典型的事务操作,这些操作的对象是大量的数据。有些操作是针对任务的,例如创建索引,这些任务操作在事务日志中记录一个标志,用于表示执行了这种操作。当取消这种事务时,系统自动执行这种操作的反操作,保证系统的一致性。系统自动生成一个检查点机制,这个检查点周期地发生。检查点的周期是系统根据用户定义的时间间隔和系统活动的频度由系统自动计算出来的时间间隔。检查点周期地检查事务日志,如果在事务日志中,事务全部完成,那么检查点将事务日志中的事务提交到数据库中,并且在事务日志中做一个检查点提交标记。如果在事务日志中,事务没有完成,那么检查点将事务日志中的事务不提交到数据库中,并且在事务日志中做一个检查点未提交标记。事务的恢复以及检查点保护系统的完整和可恢复,可以使用如图2所示的示例说明。

0522c-2.gif 

图2   事务恢复和检查点示例

    在这个示例图中,有五个事务:事务1、事务2、事务3、事务4和事务5。方框表示事务的开始和完成提交。水平方向表示时间。检查点表示在某一时间点发生检查点机制,系统失败表示在某一时间点由于断电、系统软件失败等原因而发生的系统失败。事务1的完成发生在检查点发生之间,所以事务1被提交到数据库中。事务2和事务4的完成发生在系统失败之前,所以这两个事务可以被系统向前滚动提交到数据库中。事务3和事务5由于系统失败而没有完成,所以这两个事务被取消。

数据库事务与锁详解

什么是事务(Transaction)?是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。 事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源...
  • aluomaidi
  • aluomaidi
  • 2016年09月07日 16:31
  • 2957

数据库并发访问、事务与锁的关系

Normal 0 7.8 磅 0 2 false false false Microsof...
  • liyangbing315
  • liyangbing315
  • 2009年10月13日 16:14
  • 5656

正确理解Spring事务和数据库事务和锁

Lock wait timeout exceeded; try restarting transaction解决方案
  • codingtu
  • codingtu
  • 2017年09月20日 21:59
  • 46610

数据库中的锁与事务

引言什么事事务?事务是一组原子性的SQL语句,这组语句要么全部成功,要么发生失败时全部不执行。一个良好的支持事务数据库系统必须支持如下4个特性: 原子性(atomicity) 一致性(consiste...
  • kailee_hust
  • kailee_hust
  • 2016年06月28日 16:24
  • 1041

数据库事务特性、并发、隔离级别、锁种类、锁粒度

本文解释数据库并发控制事务 对数据库数据执行的一系列操作,可以是一条或者多条SQL语句 数据库事务特性1、 原子性 对数据库数据的一系列操作,要么全部执行,要么都不 执行 2、 一致性 数...
  • lo11ve
  • lo11ve
  • 2017年11月26日 13:21
  • 98

数据库事务隔离级别和锁的实现方式

当数据库中多个事务(Transaction)处理同一数据时,就会出现并发的问题,也就是需要解决数据库隔离性的问题(isolation)。     数据库的事务操作主要会碰到以下几类问题:     ...
  • yangtianyu1218
  • yangtianyu1218
  • 2016年05月31日 10:20
  • 1403

MySql事务隔离级别锁机制实际案例深入分析

很多情况下,我们可能并没有过多的关注事务隔离级别和锁机制,可能在部分人看来,这些是晦涩难懂的冷门知识。本文通过分析一个简短的DEMO演示各种事务隔离级别下、各种锁定情况下并发执行时对数据更新差异,你将...
  • cpaqyx
  • cpaqyx
  • 2014年11月30日 19:44
  • 983

MySQL之事务、索引、锁

Mysql之事务、锁、索引 事务 锁 索引 事务概念
  • u014568443
  • u014568443
  • 2016年05月20日 17:24
  • 1035

Mysql数据库事务的隔离级别和锁的实现原理分析

mysql Innodb 解决各个不同事物隔离级别所产生问题的方法。
  • tangkund3218
  • tangkund3218
  • 2015年08月16日 18:32
  • 7364

事务、数据库事务、事务隔离级别、锁的简单总结

一、数据库事务 1、事务是作为单个逻辑工作单元执行的一系列操作。可以是一条SQL语句也可以是多条SQL语句。 2、事务具有四个特性  原子性(Atomicity):事务中的全部操作在数据库中是不可分...
  • zootial
  • zootial
  • 2014年12月25日 14:21
  • 3774
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:数据库事务和锁(二)
举报原因:
原因补充:

(最多只允许输入30个字)