转自:http://www.oschina.net/question/258230_134502总的说,数据库事物无非就两种:读取事物(select)、修改事物(update,insert)。在没有事物隔离控制的时候,多个事物在同一时刻对同一(数据的操作可能就会影响到最终期望的结果,通常有四种情况(...
分类:
数据库 时间:
2015-08-25 19:07:25
阅读次数:
250
在上一篇中忘记了一个细节。Range T-K 到底代表了什么?Range T-K Lock 代表了在 SERIALIZABLE 隔离级别中,为了保护范围内的数据不被并发的事务影响而使用的一类锁模式(避免幻读)。它由两个部分构成:第一个部分代表了他锁定了一个索引范围,在这个范围内,所有索引使用 T 锁...
分类:
数据库 时间:
2015-08-25 18:58:39
阅读次数:
227
SQL Server 的事务和锁(一)最近在项目中进行压力测试遇到了数据库的死锁问题,简言之,如下的代码在 SERIALIZABLE 隔离级别造成了死锁:1234567891011121314SELECT@findCount=COUNT(id) FROMMyTableWHERE[fk_related...
分类:
数据库 时间:
2015-08-25 18:50:10
阅读次数:
253
转 MySQL隔离级别mysql-Innodb事务隔离级别-repeatable read详解(转)
分类:
数据库 时间:
2015-08-20 15:00:32
阅读次数:
196
有个网友问我乐观锁和悲观锁的相关问题,于是就来阐述一下这个问题。首先说乐观锁,它是Pessimistic Lock的简写,也就是所谓的悲观锁。它是每次取数据的时候都会认为别人会修改它的数据,因此它是在每次取数据之前都会进行加锁操作,这样别人拿数据的时候就必须等待直到它释放锁。其实我们的关系型数据库中就用到了很多这种锁机制,比如行锁、表锁、写锁等等,都是在操作之前首先加一个锁。
...
分类:
其他好文 时间:
2015-08-19 20:32:54
阅读次数:
186
首先说的是MVCC是一种思想,每种数据库在具体的实现上都会有所不同。而InnoDB的MVCC,是通过在每行记录保存两个隐藏列来实现的。而这两个列,一个是保存创建的版本,一个是保存删除的版本。
每当我们开始一个新的事务时,系统版本号都会自动递增。事务开始时刻的系统版本号会作为事务的版本号,我们可以用它来和查询到的每行记录版本号作比较。下面我们以可重复读这个隔离级别下的一个范例来进行说...
分类:
数据库 时间:
2015-08-19 20:31:49
阅读次数:
150
英文原文 https://devcenter.heroku.com/articles/p了ostgresql-concurrency#how-mvcc-works 翻译 piglei Postgre数据库的很大的卖点之一就是它处理并发的方式。我们的期望很简单:读永远不阻塞写,反之亦然。Pos...
分类:
数据库 时间:
2015-08-18 16:46:21
阅读次数:
198
1.前言
上一篇博客讲解了Hibernate中的一级缓存,属于Session级别的,这篇博客讲解一下Hibernate中的事务机制。有关事务的概念,请参照通俗易懂数据库中的事务。
2.如何处理Hibernate中的事务
我们知道数据库中的事务,会造成一些影响。比如脏读、不可重复读、幻读。那么如何解决这些问题呢?
1.隔离级别设置
通过设置数据库的隔离级别可以消除一些...
分类:
Web程序 时间:
2015-08-18 12:06:46
阅读次数:
160
这篇文章主要谈谈Mysql事务隔离级别的区别,以及自己的一些感受。自己一直以来没搞懂“可重复读”和可提交读“两者之间的区别,通过此次的实践,清楚了两者之间的区别。废话不说,先上图看看这几个事务隔离级别。Mysql数据库总共分为四个事务隔离级别,其中默认的事务隔离级别是:repeatable read...
分类:
数据库 时间:
2015-08-17 15:29:00
阅读次数:
151
PostgreSQL两种事务隔离级别:读已提交:PostgreSQL中缺省隔离级别。当一个事务运行在这个隔离级别时,一个SELECT查询只能看到查询开始之前提交的数据而永远无法看到未提交的数据或者在查询执行时其它并行的事务提交所做的改变。如果两个事务在对同一元组进行更新,第二个更新事务将等待第一个更...
分类:
数据库 时间:
2015-08-13 22:05:33
阅读次数:
262