【问题标题】:How to cache a row instead of an model instance when using SQLAlchemy?使用 SQLAlchemy 时如何缓存行而不是模型实例?
【发布时间】:2015-04-01 06:55:08
【问题描述】:

我正在使用 SQLAlchemypython-memcached

在实际使用真正的SQLAlchemy 查询之前,我首先检查相应的键是否已缓存,如果尚未缓存,我将set 找到缓存中的实例(这是一个SQLAlchemy 模型对象)。

对于我的大多数函数来说,这已经足够快了,但在需要查询数千个对象的函数中,cPickle.loads 中花费了相当多的时间来反序列化对象。

因为元组/字典行的序列化和反序列化可能比对象快几倍,我想知道是否可以以某种方式缓存该行。

【问题讨论】:

  • 如果您使用 Postgres 和 JSON,您可以直接从查询转到 JSON,而无需进入对象。您可能想阅读this

标签: python performance sqlalchemy memcached


【解决方案1】:

您可以为此使用 dogpile cache 包。
SQLAlchemy documentation website 上甚至还有一个使用示例。

【讨论】:

  • 能否请您解释一下如何让它缓存原始元组/字典结果而不是生成的模型实例?
猜你喜欢
  • 2016-09-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-01
  • 2016-05-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多