假设我们有基于 2 个模型的数百万个地址。
Address模型具有纯字符串属性,即使对于常见的属性,如county:class Address(ndb.Model): house_no = ndb.StringProperty() street = ndb.StringProperty() locality = ndb.StringProperty() # City/town county = ndb.StringProperty() zipcode = ndb.StringProperty()StructuredAddressmodel 通过将每个属性定义为 a 来保留更常见的属性作为对其他模型的引用KeyProperty:class StructuredAddress(ndb.Model): house_no = ndb.StringProperty() street = ndb.StringProperty() locality = ndb.KeyProperty(kind=Locality) # City/town county = ndb.KeyProperty(kind=County) zipcode = ndb.KeyProperty(kind=Zipcode)
以下是问题:
当基于常见属性进行查询时,哪种模型更有效
zipcode?假设
county属性的数量约为 50,而zipcode属性的数量约为数百万。给定数百万个地址记录,在这种情况下哪种模型更有效?KeyProperty在这个例子中使用是否意味着更多的读取操作,并且实际上更高的账单?内置的 ndb 缓存会避免这种情况吗?