假设我有以下实体类型:
class ExampleModel(db.Model):
name = db.StringProperty()
mdl = ExampleModel(key_name='blah', name='abcd')
mdl.put()
之间是否有任何性能差异
ExampleModel.get_by_key_name('blah')
和
ExampleModel.all().filter('name = ', 'abcd').get()
如果有性能差异,它(大致)多少钱? ExampleModel
的{{1}}索引如何影响结果?
答案 0 :(得分:6)
是的,存在性能(和价格)差异。
在查询案例中,您需要执行2次读取操作:
在get_by_key情况下,您只执行1次读取操作:
另请注意,索引属性也会影响写入性能和成本,因为您需要在索引表中另外执行1次写入以获取到达索引的属性。
请随时查看this presentation有关数据存储区性能模式和反模式的信息。通过单击每侧的Run
按钮,您可以看到每个代码段的交互式appstats跟踪。