postgresql - 300GB Postgis 表的缓慢索引

标签 postgresql indexing postgis pgadmin-4

我正在将大约 300GB 的等高线数据加载到 postgis 表中。为了加快这个过程,我读到首先加载数据是最快的,然后创建一个索引。加载数据只用了大约2天,但现在我已经等待索引大约30天了,它仍然没有准备好。

查询是:

create index idx_contour_geom on contour.contour using gist(geom);

我在 pgadmin4 中运行它,此后程序的内存消耗从 500MB 到 100GB++ 不等。

索引这样的数据库用这么长的时间正常吗?

关于如何加快该过程的任何提示?

编辑: 数据是从 1x1 度(纬度/经度)像元(大约 30.000 个像元)加载的,因此没有一条线的边界框大于 1x1 度,那么大部分应该小得多。它们采用 EPSG:4326 投影,唯一的属性是高度和几何形状 (geom)。

最佳答案

我将 maintenance_work_mem 更改为 1GB 并停止了所有其他写入磁盘的操作(许多插入操作附加了 ANALYZE,这占用了大量资源)。我现在跑了 23 分钟。

关于postgresql - 300GB Postgis 表的缓慢索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44046520/

相关文章:

SQL - 如果加入期间日期不匹配 - 更改日期然后加入

python - Python 中 PostGIS 的 ST_DWithin 的替代方案

indexing - 有没有办法阻止 Googlebot 将页面的某些部分编入索引?

r - 创建描述特定值的现有索引位置的新变量

gis - 使用 PGRouting 基于 GTFS 的交通规划

asp.net-mvc - Entity Framework Core、NpgSql 和 Postgis 异常

database - 计算postgresql中许多连接的结果

java - JPA - 参数值 [604800000] 与类型 [java.lang.Double] 不匹配

Django 查询集

syntax - 针对特定索引的 Elasticsearch 查询