gpt4 book ai didi

python - Google App Engine 上的动态属性与固定属性查询速度

转载 作者:太空宇宙 更新时间:2023-11-04 09:15:05 25 4
gpt4 key购买 nike

我正在设计数据存储模型,并在考虑查询过滤器的工作方式时尝试确定最佳方法。

最好只写两个例子。第一个示例是,如果我有一个固定的“性别”属性,其中只有一个字符串,可以设置为“男性”或“女性”。

class Person(db.Model):
name = db.StringProperty()
gender = db.StringProperty()

p1 = Person(name="Steve", gender="male")
p2 = Person(name="Jane", gender="female")
p1.put()
p2.put()

males = db.GqlQuery("SELECT * FROM Person WHERE gender = :1", "male")

第二个例子是如果 Person 实体是一个 expando 模型,我动态设置一个“is_male”或“is_female”动态属性。

class Person(db.Expando):
name = db.StringProperty()

p1 = Person(name="Steve")
p1.is_male = True
p1.put()
p2 = Person(name="Jane")
p2.is_female = True
p2.put()

males = db.GqlQuery("SELECT * FROM Person WHERE is_male = :1", True)

现在假设我们收集了数百万条记录并且我们想要进行查询,上面两种方法中的哪一种在运行 Python 2.7 的生产 Google App Engine 中会更快?

最佳答案

绝对没有区别 - 无论属性是否为“动态”,模型在数据存储中看起来都是一样的。唯一的区别是,未设置值的标准属性类将在数据存储中插入一个值为 None 的字段,这会占用一些额外空间,但允许您查询未设置该值的用户。

关于python - Google App Engine 上的动态属性与固定属性查询速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10601502/

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