The simplified scene: 
select slowfunction() from a order by b limit 1
is slow than
select slowfunction() from ( select * from a order by b limit 1)
if there are many records in table 'a'

The real scene:

function  ST_Distance_Sphere is slow than ST_Distance, the query:

SELECT ST_Distance_Sphere(s, ST_GeomFromText('POINT(1 1)')) from road order by 
ST_Distance(s, ST_GeomFromText('POINT(1 1)')) limit 1

is slow than:

select ST_Distance_Sphere(s, ST_GeomFromText('POINT(1 1)')) from (SELECT s from 
road order by ST_Distance(s, ST_GeomFromText('POINT(1 1)')) limit 1) as a

There are about 7000 records in 'road'.  





-- 
Sent via pgsql-performance mailing list (pgsql-performance@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-performance

Reply via email to