From: | Pavan Deolasee <pavan(dot)deolasee(at)gmail(dot)com> |
---|---|
To: | Tels <nospam-pg-abuse(at)bloodgate(dot)com> |
Cc: | Peter Geoghegan <pg(at)bowt(dot)ie>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>, Simon Riggs <simon(dot)riggs(at)2ndquadrant(dot)com> |
Subject: | Re: Faster inserts with mostly-monotonically increasing values |
Date: | 2018-01-04 11:55:45 |
Message-ID: | CABOikdPZAs8QNUGDO928VPukbiik-+azv0e0JQ=bGZUtPcAk3A@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Tue, Jan 2, 2018 at 7:15 PM, Tels <nospam-pg-abuse(at)bloodgate(dot)com> wrote:
> Moin,
>
>
> >>
> >>
> > Hmm Ok. I am not entirely sure whether it's the depth or just purely
> > binary
> > searching through 3-4 index pages and/or pinning/unpinning buffers result
> > in much overhead. I will run some more tests and collect evidences.
>
> Just a question trying to understand how btree indexes work:
>
> If one inserts ever-increasing value, is the tree a balanced tree with a
> minimum (or at least not-as-high) number of levels, or does it increase in
> height every insert and creates a "tall stack"?
>
AFAIK all pages will be half-filled in this case. Imagine if one index page
can accommodate N entries, the page will be split when (N+1)th entry is
added. The left page will have half the entries and the right page will get
the remaining. The next split will happen when the right page is full i.e.
when another N/2 entries are added. Thus there will be a split at every N/2
inserts, creating an index with half filled pages.
Thanks,
Pavan
--
Pavan Deolasee http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services
From | Date | Subject | |
---|---|---|---|
Next Message | Michael Paquier | 2018-01-04 12:24:14 | Re: Enhance pg_stat_wal_receiver view to display connected host |
Previous Message | Alvaro Herrera | 2018-01-04 11:54:37 | Re: Enhance pg_stat_wal_receiver view to display connected host |