GeoDjango 端点非常慢

问题描述 投票:0回答:1

我正在尝试使用带有 PostGIS 扩展的 PostgreSQL 中加载的 1.100 行列表。每行都有以下字段:

  • 代码(整数)
  • 名称(字符)
  • mpoly(多重多边形)

这个想法是拥有一个从 VueJS 应用程序调用的端点,以打印 Leaflet 管理的地图中的每个地理数据。

序列化时查询非常慢。我该如何优化它?

我想过拥有一个 geojson 文件,但每一行都有一个关联的多位表,指示它所属的某些组。

django postgis geodjango
1个回答
0
投票

过去我也遇到过类似的问题,所以我可以分享一些我所做的事情,例如:

  • 是否可以仅选择您真正需要的必要字段。您可以获取不必要的数据,这会影响性能。 Django only() 方法对此很有用。
  • 您还可以使用 GeoDjango 中的 Simply() 方法来简化几何图形 - 这可以减少顶点数量并加快渲染速度
  • 正如您提到的 GeoJSON,您可以生成包含所有几何图形的 GeoJSON 特征集合,而不是单独序列化每一行。将整个集合序列化一次并将其作为对您的 VueJS 应用程序的单个响应。
  • 你缓存结果吗?能否实现缓存以避免重复查询?可以将序列化的 GeoJSON 数据存储在缓存中。
  • 我想你已经这样做了,但是你能优化数据库吗?

希望这有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.