我正在使用Python版Google App Engine和Datastore。加载包含查找数据的表的好方法是什么?
通过查找数据,我的意思是在初始加载后,不需要插入,删除或更新任何行
如果它破坏了引用它的其他行的引用完整性,则不能接受所有行并重新加载表。
以下是我正在使用的几种类型的示例,我想将查找数据加载到
中class Badge(db.Model): name = db.StringProperty() level = db.IntegerProperty() class Achievement(db.Model): name = db.StringProperty() level = db.IntegerProperty() badge = db.ReferenceProperty(reference_class=Badge)
这是一个不保存查找数据但是参考它的一个例子
class CamperAchievement(db.Model): camper = db.ReferenceProperty(reference_class=Camper) achievement = db.ReferenceProperty(reference_class=Achievement) session = db.ReferenceProperty(reference_class=Session) passed = db.BooleanProperty(default=True)
我想找出两件事:
加载数据的代码应该是什么样的?
什么应该触发加载代码执行?
答案 0 :(得分:2)
如果它真的创建了一次并且在部署的生命周期内永远不会发生变化,而且它相对较小(几兆或更少),则将其与您的应用程序一起存储为数据文件。让应用程序最初将数据加载到内存中,并将其缓存在那里。
答案 1 :(得分:0)
我认为你指的是某种后写缓存,但你的问题并不是那么清楚。
这是一种常见的模式,用于读慢速源(如数据库/磁盘)并将其缓存在快速源(如内存缓存/内存)中,以便以后快速检索。当事情发生变化时,你有责任清空所有缓存的项目。
上的第一个示例