我一直在使用Google App Engine,並且遇到一些數據查詢緩慢的問題。我讀過設計一個App Engine數據存儲區與使用SQL數據庫不同的思維模式,我不確定我是否以最好的方式來做這件事。我有兩個問題,試圖得到正確的軌道上:GQL查詢優化和表架構
具體做法是:
我有一個Foo
類型和UserFoo
類型。每個UserFoo
是對應的Foo
的「實例」並保存特定於該實例的數據。我的Foo
類型有一個fooCode
屬性,它是一個唯一的標識符,我使用它們的fooCode
屬性將每個UserFoo
與各個Foo
映射。然後,我對每個富的代碼運行,像這樣:
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數據存儲表和最佳實踐使用它們典型的做法?
Foo和UserFoo對象之間是否存在1對1的對應關係? – 2010-08-03 19:46:27
請注意,您所展示的實際上並不是一個GQL查詢。 – 2010-08-03 19:48:50
1 Foo許多用戶信息。另外,我最初調用的是GqlQuery,但改變了它們,因爲我讀得比較慢。 – 2010-08-03 19:52:54