gpt4 book ai didi

python - GAE 数据存储缓存键与过滤器

转载 作者:行者123 更新时间:2023-11-28 16:47:29 26 4
gpt4 key购买 nike

假设您有一个这样的实体。

postid=db.StringProperty()
comment=db.StringProperty()

用于存储对由帖子 ID 标识的特定帖子的评论。评论可以达到数十亿条记录。现在如果你想获取属于您可以做的某个帖子的所有评论,

query=Comment.all()
query.filter('postid = ','id').

或者你可以定义帖子而不是那样做

class Post(db.Model)
commentids=db.StringListProperty()#store list of comment ids

这样就可以直接获取评论了

comment=Comment.get_by_key_name('commentkey')

从长远来看(当评论达到数百万甚至数十亿大关时)哪一个更有效率。换句话说,哪个更合适。

最佳答案

如果您计划拥有数十亿条评论,请考虑使用最新的 NDB API ,除其他外,它支持自动缓存。

与其通过 postid 过滤它们,不如为您的 Comment 实体使用父级。这是一个示例(使用 DB,但使用 NDB 非常相似):

如果你有这样的模型:

class Post(db.Model):
desc = db.StringProperty()

class Comment(db.Model):
desc = db.TextProperty()

您可以创建帖子和评论,例如:

post_db = Post(desc='Hello World')
post_db.put()

comment_db = Comment(parent=post_db, desc='Nice post')
comment_db.put()

最后,如果您想从特定的 post_db 实体获取所有评论:

comment_dbs = Comment.all().ancestor(post_db)

关于python - GAE 数据存储缓存键与过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12322233/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com