如何禁用SQLAlchemy缓存?
使用时出现缓存问题sqlalchemy
。
我sqlalchemy
用来将数据插入MySQL数据库。然后,我有另一个应用程序处理此数据,并直接对其进行更新。
但是sqlalchemy
总是返回旧数据而不是更新数据。我认为已sqlalchemy
缓存了我的请求……所以……我应如何禁用它?
回答:
人们通常认为,除了在事务本地使用的常规SQLAlchemy身份映射之外,还存在“缓存”的作用,这是因为他们正在观察事务隔离的影响。默认情况下,SQLAlchemy的会话在事务模式下工作,这意味着它等待直到session.commit()
被调用才能将数据持久保存到数据库中。在此期间,其他地方正在进行的其他事务将看不到此数据。
但是,由于交易具有隔离性,因此存在额外的变数。正在处理的其他事务不仅在提交之前不会看到您的事务数据,在某些情况下也要 在提交或回滚
之前才看到它们的数据(这与close()在此处具有的效果相同) 。具有平均
度的事务将保持到目前为止已加载的状态,并且即使真实数据已更改,也会继续为您提供该事务本地的相同状态-这在事务隔离中被称为 。
http://en.wikipedia.org/wiki/Isolation_%28database_systems%29
以上是 如何禁用SQLAlchemy缓存? 的全部内容, 来源链接: utcz.com/qa/422303.html