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

Search Discussions

Discussion Posts

Previous

Follow ups

Related Discussions

Discussion Navigation
viewthread | post
posts ‹ prev | 10 of 13 | next ›
Discussion Overview
grouppgsql-hackers @
categoriespostgresql
postedOct 9, '07 at 12:28p
activeOct 10, '07 at 2:44p
posts13
users4
websitepostgresql.org...
irc#postgresql

People

Translate

site design / logo © 2021 Grokbase