我正在appengine上运行Django网站。在数据存储区中,有一个实体种类/表X
,它仅每24小时更新一次。X
大约有15,000个条目,每个条目的形式(“长度小于20的唯一字符串,整数”)。
在某些情况下,用户请求涉及从X
获取平均200个条目,如果单独进行,这将非常昂贵。
在这种情况下,我可以采用什么有效的方法?
这是我考虑过的一些方法,但是由于经验不足,他们对此有所怀疑
使用db.get()支持的Batch查询,其中可以将键列表作为参数传递,而get()将尝试一次获取所有键。这将大大减少时间,但仍然会有明显的开销和成本。另外,我正在使用Django模型,却不知道如何将这两个模型联系起来。
每隔24小时执行一次更新作业后,将整个数据库手动复制到内存中(例如将其存储在地图中)。这将非常有效,也可以为我节省很多数据存储读取,但是我还有其他疑问。它会在所有实例之间保持持久性吗?我还需要了解哪些其他因素可能会干扰?这对我来说似乎很完美。
以上正是我首先想到的。一定有我不知道/错过的方法。
谢谢。
最佳答案
您的数据总量非常小,看起来像字典。为什么不将其(此对象)保存为数据库或Blobstore中的单个条目,则可以缓存该条目。
关于python - 一种优化每天更新一次的数据存储读取的方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16773961/