@@ -606,22 +606,64 @@ Author: Tom Lane <tgl@sss.pgh.pa.us>
606
606
607
607
<listitem>
608
608
<!--
609
- Author: Alexander Korotkov <akorotkov@postgresql.org>
610
- 2018-07-28 [d2086b08b] Reduce path length for locking leaf B-tree pages during
609
+ Author: Peter Geoghegan <pg@bowt.ie>
610
+ 2019-03-20 [dd299df81] Make heap TID a tiebreaker nbtree index column.
611
+ Author: Peter Geoghegan <pg@bowt.ie>
612
+ 2019-03-20 [fab250243] Consider secondary factors during nbtree splits.
611
613
Author: Peter Geoghegan <pg@bowt.ie>
612
614
2019-03-25 [f21668f32] Add "split after new tuple" nbtree optimization.
613
615
-->
614
616
615
617
<para>
616
- Improve speed of btree index insertions (Peter Geoghegan,
617
- Alexander Korotkov)
618
+ Improve performance and space utilization of btree indexes with
619
+ many duplicates (Peter Geoghegan, Heikki Linnakangas)
620
+ </para>
621
+
622
+ <para>
623
+ Previously, duplicate index entries were stored unordered within
624
+ their duplicate groups. This caused overhead during index
625
+ inserts, wasted space due to excessive page splits, and reduced
626
+ <command>VACUUM</command>'s ability to recycle entire pages.
627
+ Duplicate index entries are now sorted in heap-storage order.
628
+ </para>
629
+
630
+ <para>
631
+ Indexes <application>pg_upgraded</application> from previous
632
+ releases will not have these benefits.
633
+ </para>
634
+ </listitem>
635
+
636
+ <listitem>
637
+ <!--
638
+ see commits above
639
+ -->
640
+
641
+ <para>
642
+ Allow multi-column btree indexes to be smaller (Peter Geoghegan,
643
+ Heikki Linnakangas)
644
+ </para>
645
+
646
+ <para>
647
+ Internal pages and min/max leaf page indicators now only store
648
+ index keys until the change key, rather than all indexed keys.
649
+ This also improves the locality of index access.
618
650
</para>
619
651
620
652
<para>
621
- The new code improves the space-efficiency of page splits,
622
- reduces locking overhead, and gives better performance for
623
- <command>UPDATE</command>s and <command>DELETE</command>s on
624
- indexes with many duplicates.
653
+ Indexes <application>pg_upgraded</application> from previous
654
+ releases will not have these benefits.
655
+ </para>
656
+ </listitem>
657
+
658
+ <listitem>
659
+ <!--
660
+ Author: Alexander Korotkov <akorotkov@postgresql.org>
661
+ 2018-07-28 [d2086b08b] Reduce path length for locking leaf B-tree pages during
662
+ -->
663
+
664
+ <para>
665
+ Improve speed of btree index insertions by reducing locking
666
+ overhead (Alexander Korotkov)
625
667
</para>
626
668
</listitem>
627
669
@@ -680,25 +722,6 @@ Author: Tom Lane <tgl@sss.pgh.pa.us>
680
722
681
723
<listitem>
682
724
<!--
683
- Author: Peter Geoghegan <pg@bowt.ie>
684
- 2019-03-20 [dd299df81] Make heap TID a tiebreaker nbtree index column.
685
- Author: Peter Geoghegan <pg@bowt.ie>
686
- 2019-03-20 [fab250243] Consider secondary factors during nbtree splits.
687
- -->
688
-
689
- <para>
690
- Have new btree indexes sort duplicate index entries in heap-storage
691
- order (Peter Geoghegan, Heikki Linnakangas)
692
- </para>
693
-
694
- <para>
695
- Indexes <application>pg_upgraded</application> from previous
696
- releases will not have this ordering.
697
- </para>
698
- </listitem>
699
-
700
- <listitem>
701
- <!--
702
725
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
703
726
2019-03-05 [fe280694d] Scan GiST indexes in physical order during VACUUM.
704
727
-->
0 commit comments