10

それらを関連付けるために、エンティティのキ​​ーを別のプロパティとして保存しています。プロジェクトのこの時点でリファクタリングの段階にあるので、祖先を導入することを考えていました。2 つのアプローチの間にパフォーマンスの違いはありますか? 祖先を紹介することで得られる利点はありますか?

class Book(ndb.Model):
  ...

class Article(ndb.Model):
  book_key = ndb.KeyProperty(kind=Book, required=True)


book_key =  ndb.Key("Book", 12345)

最初の祖先クエリ アプローチ

qry = Article.query(ancestor=book_key)

2 番目の単純なキー クエリ アプローチ

qry = Article.query(book_key=book_key)
4

1 に答える 1

15

祖先クエリは常に完全に一貫しています。一方、によるクエリbook_keyは必ずしも一貫性があるとは限りません。最近の変更がそのクエリに表示されないことがあります。

一方、祖先を導入すると、更新の数に制限が課されます。エンティティ グループ (つまり、祖先とその子) に対しては、1 秒あたり 1 回の更新しか実行できません。

アプリでどちらが重要かはトレードオフです。

于 2013-06-19T13:11:04.383 に答える