On PG 9.1 and 9.2 I'm running the following query:
SELECT *FROM stream_store JOIN ( SELECT
UNNEST(stream_store_ids) AS id FROM
stream_store_version_index WHERE stream_id = 607106 AND
version = 11 ) AS records USING (id)ORDER BY id DESC
This takes several (10 to 20) milliseconds at most.
When I add a LIMIT 1 to the end of the query, the query time goes to several
hours(!).
The full version String of PG 9.1 is "PostgreSQL 9.1.5 on
x86_64-unknown-linux-gnu, compiled by gcc-4.4.real (Debian 4.4.5-8) 4.4.5,
64-bit". The 9.1 machine is a socket 771 dual quad core at 3.16Ghz with 64GB
memory and 10 Intel x25M SSDs in a RAID5 setup on 2 ARECA 1680 RAID
controllers. The "stream_store" table has 122 million rows and is partitioned.
The array that's being unnested for the join has 27 entries.
Any idea?