Hi All

I did final research and saw that the difference between best and worst
cases is indeed really small.
I want to thank you guys for your time and efforts.

Best regards.


вт, 2 нояб. 2021 г. в 18:04, Pavel Borisov <pashkin.e...@gmail.com>:

> вт, 2 нояб. 2021 г. в 16:04, Hayk Manukyan <manukya...@gmail.com>:
>
>> Tomas Vondra
>> > Are you suggesting those are not the actual best/worst cases and we
>> > should use some other indexes? If yes, which ones?
>>
>> I would say yes.
>> In my case I am not querying only sequence column.
>> I have the following cases which I want to optimize.
>> 1. Select * from Some_table where job = <somthing> and nlp = <something>
>> and year = <something> and  *scan_id = <something> *
>> 2. Select * from Some_table where job = <somthing> and nlp = <something>
>> and year = <something> and  *Issue_flag = <something> *
>> 3. Select * from Some_table where job = <somthing> and nlp = <something>
>> and year = <something> and  *sequence = <something> *
>> Those are queries that my app send to db that is why I said that from *read
>> perspective* our *best case* is 3 separate indexes for
>>  *(job, nlp, year, sequence)* AND *(job, nlp, year, Scan_ID)* and *(job,
>> nlp, year,  issue_flag)*  and any other solution like
>>  (job, nlp, year, sequence, Scan_ID, issue_flag) OR  (job, nlp, year )
>> INCLUDE(sequence, Scan_ID, issue_flag)  OR just (job, nlp, year) can be
>> considered as* worst case *
>> I will remind that in real world scenario I have ~50m rows and about *~5k
>> rows for each (job, nlp, year )*
>>
>
>  So you get 50M rows /5K rows = 10K times selectivity, when you select on
> job = <somthing> and nlp = <something> and year = <something> which is
> enormous. Then you should select some of the 5K rows left, which is
> expected to be pretty fast on bitmap index scan or INCLUDE column
> filtering. It confirms Tomas's experiment
>
>   pgbench -n -f q4.sql -T 60
>
> 106 ms vs 109 ms
>
> fits your case pretty well. You get absolutely negligible difference
> between best and worst case and certainly you don't need anything more than
> just plain index for 3 columns, you even don't need INCLUDE index.
>
> From what I read I suppose that this feature indeed doesn't based on the
> real need. If you suppose it is useful please feel free to make and post
> here some measurements that proves your point.
>
>
>
>
> --
> Best regards,
> Pavel Borisov
>
> Postgres Professional: http://postgrespro.com <http://www.postgrespro.com>
>

Reply via email to