2016-04-05 总结

---恢复内容开始---

7号了才来写5号的东西。。真的拖延症太严重了,今天想主要说说事务这个概念以及sqlalchemy中的事务。

一、 数据库的事务

数据库的事务是指的一条或者多条SQL的集合,那么要这个集合有什么用呢?主要是为这些动作提供一致性操作,也就是:这多条操作要么全部成功,要么全部失败,可以一并回滚到初始状态。这在数据库中是非常有意义的,因为多条SQL语句有很大可能在某条执行失败了,或者执行的过程成网断了挂了各种。除此之外呢,事务还是一个隔离的单位, 当有大量并发操作的时候,我们需要进行隔离保证不出现各种错乱读/写的情况,这个时候就可以用事务当作一个隔离的单位。

事务具有以下的特性(ACID):

1)原子性

2)一致性

3)隔离性

4)持久性

而具体到事务的隔离怎么实现?大概有两种机制,基于锁机制的并发控制和多版本并发控制(MVCC)。

基于锁机制的并发控制其实很好理解,就像多线程一样,访问共同的资源总是需要加锁的,不同的数据库在锁的粒度机制等等上都有不同,具体就不表了。

另一种英文名比较常见,

---恢复内容结束---

posted @ 2016-04-09 16:09  _Rachel  阅读(129)  评论(0)    收藏  举报