0

以前に次のコードを使用しました。

def add_movie(movie_id, title, picture, description):
    movie = Movies(
        id=movie_id,
        title=title,
        picture=picture,
        description=description
        )
    movie.put()

しかし、映画が新しいレコードとして追加されたのか、それとも既存の映画が更新されたのかを知ることはできませんでした. そのため、コードを次のように変更しました。

def add_movie(movie_id, title, picture, description):
    newly_added = True
    movie = Movies.get_by_id(movie_id)
    if movie:
        newly_added = False
    movie.id = movie_id
    movie.title = title
    movie.picture = picture
    movie.description = description
    movie.put()
    return newly_added

しかし、最初に映画を取得し、その後でのみ更新するようです。したがって、データストアへのリクエストは 1 つではなく 2 つです。

同じことを行う他の方法はありますか?または、私は間違っていて、両方のアプローチはパフォーマンスの観点から同じですか?

4

2 に答える 2

3

いいえ、それを回避する方法は他にありません。

これは追加のリクエストによりパフォーマンスに影響しますgetが、「get」は非常に高速で安価なので、心配する必要はありません。

于 2012-08-11T10:59:43.107 に答える
2

@Peter が言ったように: get 操作は非常に安価であり、私はそれについて心配しませんが、映画 ID を memcache に保存し、そこにあるかどうかを主にチェックすることができます。そこにない場合は、データストアを確認してください。

于 2012-08-11T12:33:43.563 に答える