事务简介
锁
并发
优势:容易理解
劣势:性能较低
容易理解的模型性能都不好,性能好的模型都不容易理解。
一个事务单元
例子: Bob只有100块要全部给Smith(0元)
分析:线程①操作Bob的账号时,会加锁,当有其他线程②③要操作时只能等待,保持数据的 一致性
如果没有加锁,当①从Bob账号中减少100,而Smith账号要等2ms才能到账,那在这2ms期间如果②去访问Bob账号,发现Bob里面是0元,Smith也是0元,就出现了一致性的问题,是不能接受的。
线程②③要么是看到Bob有100块,要么是看到Smith有100块,这就是数据库的另一特性 持久性,
而一个事务要么成功,要么失败,不会存在Bob减少了100块,而Smith收不到这100块的情况,这也是数据库的另一特性 原子性
哪些地方用到了事务?
- 写数据、读数据、建立索引、删除表,每个操作都是一个事务。
一组事务单元
例如:① 事务1:Bob给Smith100块,②事务2:Smit