我在 appengine 上运行我的 Django 站点。在数据存储中,有一个实体种类/表X
,它每 24 小时仅更新一次。
X
有大约 15K 个条目,每个条目的格式为(“长度 <20 的唯一字符串”,整数)。
在某些情况下,用户请求涉及从 中获取平均 200 个条目X
,如果单独完成,这将非常昂贵。
在这种情况下我可以采用什么有效的方法?
以下是我想到的一些方法,但由于缺乏经验而对它们有一些疑问
- 使用 db.get() 支持的批处理查询,其中可以将键列表作为参数传递,而 get() 将尝试一次性获取它们。这将大大减少时间,但仍然会有明显的开销和成本。另外,我正在使用 Django 模型,不知道如何将这两者联系起来。
- 在每 24 小时发生一次的每个更新作业之后手动将整个数据库复制到内存中(例如将其存储在地图中)。这会很好地工作,也可以为我节省大量的数据存储读取,但我还有其他疑问。它会在实例之间保持持久性吗?我还需要注意哪些其他因素可能会干扰?这个或类似的东西似乎很适合我的情况。
以上只是我最初想到的。一定有我不知道/失踪的方式。
谢谢。