是ST_GeomFromText不是提供直接的几何形状更好?(Is ST_GeomFromText

2019-09-16 11:05发布

我一直在PostGIS最近,在我的查询,如果我用ST_GeomFromText它执行比运行一个子查询来获取GEOM更快。

我想ST_GeomFromText会更昂贵,但每次我得到的结果更快地运行许多测试之后,我的问题是有幕后黑手做任何解释? 因为对我来说,直接在子查询得到GEOM是不是让GEOM为文本,然后加入GeomFromText更好。

谢谢,萨拉

Answer 1:

你的问题是,问题是不同的。 ST_GeomFromText将是不可变的功能,因此,输出仅取决于输入。 这意味着规划人员可以在查询开始执行一次吧。 运行一个子查询意味着你不必去查询几何形状,这意味着接盘等。在第一,你有CPU活动的一点点,对于查询执行一次,第二你有磁盘上的查询。

因此,答案在一定程度上取决于你用它做什么。 在一般情况下,你可以假设优化器将处理事情像输入类型转换,在那些不依赖于设置,相当不错。

想想看,这种方式。

SELECT * FROM mytable WHERE my_geom = ST_GeomFromText(....);

这被转换成类似下面的伪代码:

 private_geom = ST_GeomFromText(....);
 SELECT * FROM mytable WHERE my_geom = private_geom;

然后,该查询被计划和执行。

显然,你不想被添加往返,只是为了避免在查询查找,但如果你知道的几何形状,你还不如通过其指定ST_GeomFromText(....)中查询。



文章来源: Is ST_GeomFromText better than providing direct geometry?