On Fri, Aug 12, 2016 at 8:13 PM, Andrew Gierth <and...@tao11.riddles.org.uk> wrote: > No, because as the pages split, they fill more slowly (because there are > now more pages). So on average in a large randomly filled index, pages > spend more time nearer 50% full than 100% full. This is easy to > demonstrate by creating a table with an indexed float8 column and adding > batches of random() values to it, checking with pgstatindex at intervals - > the average leaf density will rarely exceed 70%. > > However, worst case conditions can give lower leaf densities; obviously > the worst case is if the data is loaded in an order and quantity that > just happens to leave every leaf page recently split.
btree pages don't split 50/50 either. They split biased to assume the greater side of the split will receive more inserts -- iirc 70/30. So if they're loaded sequentially you should get a btree that's 70% full but the worst case is in theory closer to 30% though I think the insert order would have to be pretty perverse to be worse than 50%. -- greg -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers