Category Archives: 数据库技术

RDMBS / NoSQL

MySQL事务&并发实际操合集

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

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

演示:

t1
set autocommit = 0;
begin;
update clockin_test set count = count - 10;

t2
set autocommit = 0;
begin;
update cl[......]

继续阅读

理解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 .[......]

继续阅读