From: | Felipe Santos <felipepts(at)gmail(dot)com> |
---|---|
To: | "Joshua D(dot) Drake" <jd(at)commandprompt(dot)com> |
Cc: | Melvin Davidson <melvin6925(at)gmail(dot)com>, David Rowley <david(dot)rowley(at)2ndquadrant(dot)com>, "pgsql-general(at)postgresql(dot)org" <pgsql-general(at)postgresql(dot)org>, Thomas Kellerer <spam_eater(at)gmx(dot)net> |
Subject: | Re: BRIN indexes |
Date: | 2016-01-28 18:16:31 |
Message-ID: | CAPYcRiWWhj4dwiZJ8r+5ZSrJVUUn3ZRn9Jkb4dEHQ3Ww_Qk=Yg@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
2016-01-28 16:03 GMT-02:00 Joshua D. Drake <jd(at)commandprompt(dot)com>:
> On 01/28/2016 09:41 AM, Melvin Davidson wrote:
>
>> So, IOW, and the answer to my question is yes, it should be insured that
>> all pages involved are physically adjacent (by design or by pre-sort)
>> before creating a BRIN on them.
>> Further to the point, it is self defeating to have more than one BRIN
>> index on the table if the columns involved would have mutually
>> non-adjacent pages.
>> Therefore, it actually would be good to state that in the documentation,
>> even it were just a comment.
>>
>
> BRIN indexes are best used on INSERT only tables with a sequence of
> numbers as a PK or indexed column that will be queried against. At least as
> I understand it.
>
> JD
>
> --
> Command Prompt, Inc. http://the.postgres.company/
> +1-503-667-4564
> PostgreSQL Centered full stack support, consulting and development.
>
>
>
> --
> Sent via pgsql-general mailing list (pgsql-general(at)postgresql(dot)org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-general
>
"Further to the point, it is self defeating to have more than one BRIN
index on the table if the columns involved would have mutually
non-adjacent pages."
Not really, if both columns are ordered, BRIN will work
"Therefore, it actually would be good to state that in the documentation,
even it were just a comment."
It is = "BRIN is designed for handling very large tables in which
certain columns have some natural correlation with their physical location
within the table"
Link: http://www.postgresql.org/docs/devel/static/brin-intro.html
Also, I did some tests and here are the results I got:
Query with no index = completion time 43s
Same Query with BRIN = completion time 14s / index size 0,5 MB
Same Query without BRIN and with BTREE = completion time 10s / index size
5.000,00 MB
As you can see, BRIN can save 99% of disk space for just a slightly worse
performance.
It seems like a huge improvement, given that your data fits BRIN's use case.
From | Date | Subject | |
---|---|---|---|
Next Message | Igor Neyman | 2016-01-28 18:33:53 | Re: BRIN indexes |
Previous Message | Joshua D. Drake | 2016-01-28 18:03:01 | Re: BRIN indexes |