2012年11月30日
摘要: 这种数据类型表现自动生成的二进制数,确保这些数在数据库中是唯一的。timestamp 一般用作给表行加版本戳的机制。存储大小为 8 字节。 一个表只能有一个 timestamp 列。每次插入或更新包含 timestamp 列的行时,timestamp 列中的值均会更新。这一属性使 timestamp 列不适合作为键使用,尤其是不能作为主键使用。对行的任何更新都会更改 timestamp 值,从而更改键值。如果该列属于主键,那么旧的键值将无效,进而引用该旧值的外键也将不再有效。如果该表在动态游标中引用,则所有更新均会更改游标中行的 位置。如果该列属于索引键,则对数据行的所有更新还将导... 阅读全文
posted @ 2012-11-30 23:46 啊T 阅读(2159) 评论(0) 推荐(0) 编辑
摘要: 锁的概述一. 为什么要引入锁多个用户同时对数据库的并发操作时会带来以下数据不一致的问题:丢失更新A,B两个用户读同一数据并进行修改,其中一个用户的修改结果破坏了另一个修改的结果,比如订票系统脏读A用户修改了数据,随后B用户又读出该数据,但A用户因为某些原因取消了对数据的修改,数据恢复原值,此时B得到的数据就与数据库内的数据产生了不一致不可重复读A用户读取数据,随后B用户读出该数据并修改,此时A用户再读取数据时发现前后两次的值不一致并发控制的主要方法是封锁,锁就是在一段时间内禁止用户做某些操作以避免产生数据不一致二 锁的分类锁的类别有两种分法:1. 从数据库系统的角度来看:分为独占锁(即排它锁) 阅读全文
posted @ 2012-11-30 22:17 啊T 阅读(6725) 评论(1) 推荐(0) 编辑
摘要: 本文介绍了处理.NET中锁的6种方法,首先我们讨论一下并发性问题,然后讨论处理乐观锁的3种方法,乐观锁不能从根源上解决并发问题,因此后面我们介绍了悲观锁,最后介绍隔离级别如何帮助我们实现悲观锁,每个隔离级别都列举了示例进行说明,使得概念更加清晰。 我们为什么需要锁? 在多用户环境中,在同一时间可能会有多个用户更新相同的记录,这就会产生冲突,这个就是著名的并发性问题。 图 1 并行性问题漫画 如何解决并发性问题? 借助正确的锁定策略可以解决并发性问题,资源被锁定后,其它进程想要访问它就会被阻止。 并发会造成什么样的冲突? 并发主要会导致四种常见的问题,详细情况请... 阅读全文
posted @ 2012-11-30 22:01 啊T 阅读(505) 评论(0) 推荐(0) 编辑