一种优化数据存储读取的方法,每天更新一次

时间:2013-05-27 13:08:26

标签: python django google-app-engine

我在appengine上运行我的Django网站。在数据存储区中,有一个实体种类/表X,每24小时更新一次。

X有大约15K个条目,每个条目都是格式(“长度<20的唯一字符串,整数)。

在某些情况下,用户请求涉及从X中提取平均200个条目,如果单独完成,这将是非常昂贵的。

在这种情况下,我可以采用哪种有效方式?

以下是我想到的一些方法,但由于缺乏经验而对它们有一些疑问

  • 使用db.get()支持的Batch查询,其中键列表可以作为参数传递,get()将尝试一次性获取它们。这将显着减少时间,但仍然会有明显的开销和成本。另外,我使用的是Django模型,并且不知道如何将这两者联系起来。
  • 在每24小时发生一次更新作业后,将整个数据库手动复制到内存中(如将其存储在地图中)。这将很好地工作,也节省了大量的数据存储读取,但我还有其他疑问。它会在实例中保持持久性吗?还有哪些其他因素需要注意哪些可能会干扰?这样或类似的事情对我的情况来说似乎很完美。

以上是我首先想到的。必须有我不知道/缺失的方法。

感谢。

1 个答案:

答案 0 :(得分:1)

您的总数据量非常小,看起来像一个字典。为什么不将它(此对象)保存为数据库或blobstore中的单个条目,您可以缓存此条目。