我一直在使用 Google App Engine,但我的一些数据查询遇到了一些性能缓慢的问题。我读过设计 App Engine 数据存储区与使用 SQL 数据库的思维方式不同,我不确定我这样做是不是最好的方式。我有两个问题要尝试走上正轨:
具体来说:
我有一个Foo
类型和一个UserFoo
类型。每个UserFoo
都是对应的“实例”,Foo
并保存特定于该实例的数据。我的Foo
类型有一个fooCode
属性,它是一个唯一标识符,我使用它们的UserFoo
属性来映射它们。然后我使用如下代码对每个 Foo 进行操作:Foo
fooCode
foos = Foo.all().filter('bar =', bar)
for foo in foos:
userFoo = UserFoo.all().filter('userKey =', user).filter('fooCode =', foo.fooCode)
注意:我使用fooCode
的是引用键,以便我们可以轻松地删除和重新添加新Foo
的 s,而不必重新映射所有相应UserFoo
的 s。
一般来说:
设计 GAE 数据存储表的典型方法和使用它们的最佳实践是什么?