作者:雪_月_ | 来源:互联网 | 2023-02-12 15:08
我有一个看起来像这样的查询:
query = (models.Foo.all()
.filter('x =', x)
.filter('y =', y)
.filter('z =', z)
.filter('zz =', zz)
.order('-a'))
它在~100ms内在本地SDK上运行,并以可接受的速度在云中运行.当我添加第二个订单(所以看起来像这样:)
query = (models.Foo.all()
.filter('x =', x)
.filter('y =', y)
.filter('z =', z)
.filter('zz =', zz)
.order('-a')
.order('-b'))
..在本地SDK上需要大约10秒(长100倍),并且在云中以与之前相同的速度运行.我需要有二阶属性.
有关设置的一些细节:
Windows SDK版本1.9.50
Python 2.7
使用db
模型,而不是ndb
我已经开始使用新的本地数据库(替换了datastore.db)并从头开始重建记录
本地有大约1200个Foo实体(云中约为3M)
我跑sqlite3 datastore.db "PRAGMA integrity_check
了本地数据库,没有报告任何错误
问题:如何在本地更快地运行查询?(在整个时间里,10s滞后的开发真的很困难.)