我正在使用对Final属性进行过滤的查询来搜索name模型(在下面定义)。该查询大约需要2200毫秒才能在开发服务器上执行。我如何加快速度?这是一个AppStats screenshot

我也过滤了created字段,但这花费了10000毫秒以上的时间,因此我现在删除了该部分查询。

class Final(db.Model):
    name = db.StringProperty()     # 7 characters long
    author = db.StringProperty()
    rating = db.FloatProperty()
    created = db.DateTimeProperty()

# this is the important part of the request (AppStats shows that these two
# queries take about 2200ms each).

 query = Final.all()
 query2 = Final.all()
 query.filter('name = ', link1)
 query2.filter('name = ', link2)
 aa = query.fetch(10000)
 bb = query2.fetch(10000)

最佳答案

尽管David的建议是好的,但在开发服务器上优化速度可能不是一个好主意。开发服务器的性能不能反映生产服务器的性能,并且基于开发服务器运行时的优化在生产中可能效果不佳。

通常,您可以假设开发服务器的性能会随着记录的添加而降低,而在生产环境中绝对不是这种情况,在生产环境中,查询运行时间仅取决于结果集的大小。如果您可以减少生产中样本数据集的大小,那么这可能是加快开发速度的最佳选择。

关于python - 缩短获取时间并改善此功能的性能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3301607/

10-14 10:05