2018-03-02 15:29 GMT+01:00 Pavel Stehule <pavel.steh...@gmail.com>:

>
>
> 2018-03-02 14:49 GMT+01:00 Nandakumar M <m.nand...@gmail.com>:
>
>> Hi,
>>
>> https://heapanalytics.com/blog/engineering/running-10-millio
>> n-postgresql-indexes-in-production
>>
>> From the link shared above, it looks like what Meenatchi has done should
>> work.
>>
>
> It can be different situation, there are not specified indexes per table.
> And if some projects works, it doesn't mean, so they are well designed.
>
> PostgreSQL has not column storage. Look on column databases. They are
> designed for extra wide tables.
>

read the article:

1. Probably they use Citus

2. Since partial indexes are so easy to create and work with, we’ve wound
up with over 10 million partial indexes across our entire cluster.



> Regards
>
> Pavel
>
>
>>
>> Do the conditions on the partial index and query match exactly? (
>> greater than / greater than equals mismatch maybe?)
>>
>> If conditions for those partial indexes are mutually exclusive and the
>> query has a matching condition then Postgres can use that index alone.
>> Are we missing something here?
>>
>> Regards,
>> Nanda
>>
>> On Thu, Mar 1, 2018 at 6:33 PM, Laurenz Albe <laurenz.a...@cybertec.at>
>> wrote:
>> > Meenatchi Sandanam wrote:
>> >> I have created a table with 301 columns(ID, 150 BIGINT, 150 TEXT). The
>> table contains
>> >> multiple form data differentiated by ID range. Hence a column contains
>> more than one form data.
>> >> To achieve Unique Constraint and Indexing per form, I chose PostgreSQL
>> Partial Indexes
>> >> which suits my requirement. I have created Partial Indexes with ID
>> Range as criteria and
>> >> it provides Uniqueness and Indexing per form basis as expected. But
>> DML operations on a
>> >> particular form scans all the Indexes created for the entire table
>> instead of scanning
>> >> the Indexes created for that particular form ID Range. This degrades
>> Planner Performance
>> >> and Query Time more than 10 times as below,
>> >>
>> >> Query Result for the table with 3000 Partial Indexes(15 Indexes per
>> form) :
>> >
>> > It is crazy to create 3000 partial indexes on one table.
>> >
>> > No wonder planning and DML statements take very long, they have to
>> consider all the
>> > indexes.
>> >
>> >> explain analyse select id from form_data_copy where id between 3001
>> and 4000 and bigint50=789;
>> >
>> > Use a single index on (bigint50, id) for best performance.
>> >
>> > Yours,
>> > Laurenz Albe
>> > --
>> > Cybertec | https://www.cybertec-postgresql.com
>> >
>>
>>
>

Reply via email to