正确做法是什么,一直搞不明白,先谢了。
|
imnpcAug 8, 2015
1
Selete 为什么要开启事务呢 一般不是写入重要操作的时候才需要吗
|
|
msg7086Aug 8, 2015
2
没写入的话commit和rollback没区别呀,都是释放掉当前上下文。
|
|
hdshenAug 8, 2015
3
只做查询的时候 不开启事物
有db写入的时候 才开启 |
|
realpgAug 8, 2015
4
MySQL么?
第一,无更新操作不开启事务 第二,如果是“可能更新”而开启事务最后因为逻辑直接要结束,应该commit,因为rollback必然要进行一大堆内部逻辑。不过无写入rollback跟commit的开销差距极小, |
|
sivacohanAug 8, 2015 via Android
5
PostgreSQL的话建议用commit
|
|
8
|
|
oclockAug 9, 2015
9
不是开销问题,select for update之后到底有没有写动作,有的话肯定应该commit。一般可以这样
try: db.session.execute(...) ... db.session.commit() except SQLAlchemy.Error: db.session.rollback() 如果不捕捉异常,常常出现悬空连接idle in trasanction (postgresql),而数据库要过很久才会关闭这些连接 |