假设我在appengine数据库中的模型中有一百万条记录。我是否会通过以下查询支付性能损失。
records = MyModel.all().filter("words =", "foo").fetch(offset=250000, limit=20)
从它所说的appengine docs
The query has performance characteristics that correspond linearly
with the offset amount plus the limit.
或者我是否必须创建索引并执行类似
的操作records = MyModel.all().filter("words =", "foo").filter("pub_date >", last_date).fetch(20)
我正在尝试查看是否可以在不向模型添加任何索引的情况下查询StringListProperty。
答案 0 :(得分:3)
使用索引几乎肯定会为您提供更好的性能,特别是随着实体数量的增加。
如果指定偏移量,数据存储区将在应用程序开始获取结果之前扫描offset
个实体。你引用的两个bullet points之上的两个{{3}}解释了一点:
第一个偏移结果不是 被数据存储区本身跳过。