Re: some points for FAQ

Поиск
Список
Период
Сортировка
От Bruce Momjian
Тема Re: some points for FAQ
Дата
Msg-id 200710092149.l99Ln6229080@momjian.us
обсуждение исходный текст
Ответ на Re: some points for FAQ  ("Pavel Stehule" <pavel.stehule@gmail.com>)
Ответы Re: some points for FAQ  ("Pavel Stehule" <pavel.stehule@gmail.com>)
Список pgsql-hackers
Pavel Stehule wrote:
> > > >
> > >
> > > 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.

OK, how do we even explain this idea in the FAQ.  It pulls 20 random
values from 1 to 10000?  That seems pretty hard to code to me.  Where do
you get the 10000 number from?  How do you know you will hit a match in
20 tries?

--  Bruce Momjian  <bruce@momjian.us>        http://momjian.us EnterpriseDB
http://postgres.enterprisedb.com
 + If your life is a hard drive, Christ can be your backup. +


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Simon Riggs
Дата:
Сообщение: Re: Skytools committed without hackers discussion/review
Следующее
От: Andrew Dunstan
Дата:
Сообщение: Re: Skytools committed without hackers discussion/review