之前我使用过以下代码:
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
但看起来它会先获得电影,之后只会更新它。所以2请求数据存储而不是1.
有没有其他方法可以做同样的事情? 或者,我是错的,从绩效角度来看两种方法都是一样的吗?
答案 0 :(得分:3)
不,没有别的办法。
由于额外的get
请求,这会影响性能,但“获取”的速度非常快and cheap,因此请不要担心。
答案 1 :(得分:2)
正如@Peter所说:获取操作非常便宜,我不会担心它,但你仍然可以将电影ID存储在内存缓存中并主要检查它是否在那里,如果它在那里那么电影是不是新的,如果不在那里检查数据存储区。