Category Archives: NoSQL && RDMBS

MySQL事务&并发实际操合集

1. “UPDATE tbl SET count = count – 10 WHERE id = 1″这种SQL能否保证并发事务安全。

答:可以,UPDATE操作会针对id加锁,且”x = x – y”会再最新提交的结果上计算。

演示:

t1

t2

然后会发现t2卡住了,即被锁了。如果你有查询锁权限,应该可以看到锁

然后提交t1,再提[……]

继续阅读

理解MySQL的四种事务隔离级别

转载自:《MySQL的四种事务隔离级别》

一、事务的基本要素(ACID)

  1. 原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样。也就是说事务是一个不可分割的整体,就像化学中学过的原子,是物质构成的基本单位。
  2. 一致性(Consistency):事务开始前和结束后,数据库的完整性约束没有被破坏 。比如A向B转账,不可能A扣了钱,B却没收到。
  3. 隔离性(Is[……]

继续阅读

[转]MySQL中的SELECT FOR UPDATE

转载自:http://www.cnblogs.com/chenwenbiao/archive/2012/06/06/2537508.html

MySQL  使用SELECT … FOR UPDATE 做事务写入前的确认

以MySQL 的InnoDB 为例,预设的Tansaction isolation level 为REPEATABLE READ,在SELECT 的读取锁定主要分为两种方式:

SELECT … LOCK IN SHARE MODE

SELECT .[……]

继续阅读