> > > > > > > ok. I accept it. Can be some note there? Not this strange select. > > Well, with 8.3 having this be faster I am thinking we should wait to see > if the hacks are needed. >
difference, on 10K lines (on small think table) postgres=# select * from test where i = any(array(select (random()*10000)::int from generate_series(1,20))) limit 1; i | v -----+----- 869 | 113 (1 row) Time: 3,984 ms postgres=# select * from test order by random() limit 1; i | v ------+----- 3687 | 293 (1 row) Time: 21,978 ms 8.2 postgres=# select * from test order by random() limit 1; i | v ------+----- 4821 | 608 (1 row) Time: 51,299 ms postgres=# select * from test where i = any(array(select (random()*10000)::int from generate_series(1,20))) limit 1; i | v -----+----- 762 | 254 (1 row) Time: 4,530 ms Results: 8.3 "fast solution' is 6x faster 8.2 'fast solution' is 11x faster .. it's minimum. Pavel for me, it's one from typical beginers mistakes ---------------------------(end of broadcast)--------------------------- TIP 4: Have you searched our list archives? http://archives.postgresql.org