2016-04-05 总结
---恢复内容开始---
7号了才来写5号的东西。。真的拖延症太严重了,今天想主要说说事务这个概念以及sqlalchemy中的事务。
一、 数据库的事务
数据库的事务是指的一条或者多条SQL的集合,那么要这个集合有什么用呢?主要是为这些动作提供一致性操作,也就是:这多条操作要么全部成功,要么全部失败,可以一并回滚到初始状态。这在数据库中是非常有意义的,因为多条SQL语句有很大可能在某条执行失败了,或者执行的过程成网断了挂了各种。除此之外呢,事务还是一个隔离的单位, 当有大量并发操作的时候,我们需要进行隔离保证不出现各种错乱读/写的情况,这个时候就可以用事务当作一个隔离的单位。
事务具有以下的特性(ACID):
1)原子性
2)一致性
3)隔离性
4)持久性
而具体到事务的隔离怎么实现?大概有两种机制,基于锁机制的并发控制和多版本并发控制(MVCC)。
基于锁机制的并发控制其实很好理解,就像多线程一样,访问共同的资源总是需要加锁的,不同的数据库在锁的粒度机制等等上都有不同,具体就不表了。
另一种英文名比较常见,
---恢复内容结束---

浙公网安备 33010602011771号