如何设置我的Flask应用程序初始化以将Flask-SQLAlchemy设置为自动提交模式,除非我明确session.begin()
,否则不使用事务?
会话" begins a database transaction as soon as it starts communicating"。这是否会影响Postgres 更难而不是MySQL?
自动提交模式;在这种模式下,Psycopg2不会发出BEGIN / COMMIT 任何疑问;相反,每个查询都在自己的单语句中运行 交易。这对于只读查询特别有用 不需要事务语义。这很简单:
connection.autocommit = True
这减少了我们的应用程序服务器和数据库之间的聊天 显着,并在数据库框上降低了系统CPU
答案 0 :(得分:12)
我认为您可以在Flask-SQLAlchemy中设置autocommit
:
from flask.ext.sqlalchemy import SQLAlchemy
db = SQLAlchemy(session_options={'autocommit': True})
答案 1 :(得分:0)
由于您使用的是Flask-SQLAlchemy,因此默认情况下为autocommit = False
。见code here
确实如果你想在默认情况下打开自动提交,你必须覆盖SQLAlchemy.create_session
功能。