【发布时间】:2015-10-16 05:07:07
【问题描述】:
我有一个平均需要 550 毫秒的 postgis 查询。
查询如下所示:
pnt = fromstr("POINT(%s %s)" % (lat, lng))
Location.objects.filter(geometry__distance_lte=(pnt, D(mi=2)))
有没有办法加快速度?这是我可以缓存的东西吗?
【问题讨论】:
标签: django postgresql heroku postgis
我有一个平均需要 550 毫秒的 postgis 查询。
查询如下所示:
pnt = fromstr("POINT(%s %s)" % (lat, lng))
Location.objects.filter(geometry__distance_lte=(pnt, D(mi=2)))
有没有办法加快速度?这是我可以缓存的东西吗?
【问题讨论】:
标签: django postgresql heroku postgis
是的,您可以加快速度!使用dwithin代替距离,这样查询就可以使用空间索引。
Location.objects.filter(geometry__dwithin=(pnt, D(mi=2)))
数据库列需要有一个spatial index 才能利用这一点。
【讨论】: