几个常考的知识点
举个例子 转账操作是事务使用的一个常见场景。
session.begin()
try:
item1 = session.query(Item).get(1)
item2 = session.query(Item).get(2)
item1.foo = 'bar'
item2.bar = 'foo'
session.commit()
except:
session.rollback()
raise
如果不对事务进行并发控制,可能会产生四种异常情况
为了解决并发控制异常,定义了4种事务隔离级别
高并发场景下,写入数据库会有数据重复问题
什么是乐观锁,什么是悲观锁
select for update
check and set
乐观锁一般通过版本号或者时间戳实现
两种引擎的区别