st_dwithin 的 Postgresql 要点索引被忽略

Postgresql gist index ignored for st_dwithin

我在具有 postgis 扩展名的 postgresql 12 中有一个点数据库(1000 万)。我在点列上创建了一个要点索引,我需要根据与给定点的距离来过滤点。似乎没有使用索引。我运行下面解释一下:

EXPLAIN
SELECT actual_location
FROM geometries
WHERE ST_DWithin(ST_SetSRID(ST_MakePoint(30,30), 4326), actual_location, 100000, true);

产生:


所以它似乎只进行并行序列扫描。我在这里弄错了吗?我应该使用不同的索引类型吗?当数据库中填充了 100 万个点时,它会在大约 1.3 秒内返回结果。有了 1000 万,它就变成了大约 11-13,这对于我的应用程序的用户来说是不能接受的。

原来我应该像这样创建索引:

CREATE INDEX example_idx ON geometries USING GIST (geography(actual_location));