docs: mention that expression indexes need analyze
authorBruce Momjian <bruce@momjian.us>
Thu, 12 Nov 2020 20:00:44 +0000 (15:00 -0500)
committerBruce Momjian <bruce@momjian.us>
Thu, 12 Nov 2020 20:00:44 +0000 (15:00 -0500)
Expression indexes can't benefit from pre-computed statistics on
columns.

Reported-by: Nikolay Samokhvalov
Discussion: https://postgr.es/m/CANNMO++5rw9RDA=p40iMVbMNPaW6O=S0AFzTU=KpYHRpCd1voA@mail.gmail.com

Author: Nikolay Samokhvalov, modified

Backpatch-through: 9.5

doc/src/sgml/ref/create_index.sgml

index 749db2845e8c6fdcf58901aca167c1671a26f1f5..844f00904be94fc95f163d437d0490805f61a64c 100644 (file)
@@ -745,6 +745,16 @@ Indexes:
    sort high</quote>, in queries that depend on indexes to avoid sorting steps.
   </para>
 
+  <para>
+   The regularly system collects statistics on all of a table's
+   columns.  Newly-created non-expression indexes can immediately
+   use these statistics to determine an index's usefulness.
+   For new expression indexes, it is necessary to run <link
+   linkend="sql-analyze"><command>ANALYZE</command></link> or wait for
+   the <link linkend="autovacuum">autovacuum daemon</link> to analyze
+   the table to generate statistics about new expression indexes.
+  </para>
+
   <para>
    For most index methods, the speed of creating an index is
    dependent on the setting of <xref linkend="guc-maintenance-work-mem"/>.