开发者社区 问答 正文

如何禁用SQLAlchemy缓存??mysql

使用时出现缓存问题sqlalchemy。

我sqlalchemy用来将数据插入MySQL数据库。然后,我有另一个应用程序处理此数据,并直接对其进行更新。

但是sqlalchemy总是返回旧数据而不是更新数据。我认为已sqlalchemy缓存了我的请求……所以……我应如何禁用它?

展开
收起
保持可爱mmm 2020-05-17 12:22:35 999 分享 版权
1 条回答
写回答
取消 提交回答
  • 人们通常认为,除了在事务本地存在的常见SQLAlchemy身份映射之外,还存在“缓存”的作用,这是因为他们正在观察事务隔离的影响。默认情况下,SQLAlchemy的会话在事务模式下工作,这意味着它等待直到session.commit()被调用才能将数据持久保存到数据库中。在此期间,其他地方正在进行的其他事务将看不到此数据。

    但是,由于交易具有隔离性,因此存在额外的变数。正在处理的其他事务不仅在提交之前不会看到您的事务数据,在某些情况下也要在提交或回滚之前才看到它们的数据(这与close()在此处具有的效果相同) 。具有平均隔离度的事务将保持到目前为止已加载的状态,并且即使真实数据已更改,也会继续为您提供该事务本地的相同状态-这在事务隔离中被称为可重复读取。

    http://en.wikipedia.org/wiki/Isolation_%28database_systems%29来源:stack overflow

    2020-05-17 12:23:19
    赞同 展开评论