1
0
mirror of https://github.com/postgres/postgres.git synced 2025-09-02 04:21:28 +03:00

docs: add mention of index swapping

Backpatch to 9.3

Greg Smith
This commit is contained in:
Bruce Momjian
2014-01-30 12:14:24 -05:00
parent 146604ec43
commit b1cbd2b573
2 changed files with 21 additions and 3 deletions

View File

@@ -748,8 +748,9 @@ analyze threshold = analyze base threshold + analyze scale factor * number of tu
<para>
In some situations it is worthwhile to rebuild indexes periodically
with the <xref linkend="sql-reindex">
command.
with the <xref linkend="sql-reindex"> command or a series of individual
rebuilding steps.
</para>
<para>
@@ -775,6 +776,23 @@ analyze threshold = analyze base threshold + analyze scale factor * number of tu
(This consideration does not apply to non-B-tree indexes.) It
might be worthwhile to reindex periodically just to improve access speed.
</para>
<para>
<xref linkend="sql-reindex"> can be used safely and easily in all cases.
But since the command requires an exclusive table lock, it is
often preferable to execute an index rebuild with a sequence of
creation and replacement steps. Index types that support
<xref linkend="sql-createindex"> with the <literal>CONCURRENTLY</>
option can instead be recreated that way. If that is successful and the
resulting index is valid, the original index can then be replaced by
the newly built one using a combination of <xref linkend="sql-alterindex">
and <xref linkend="sql-dropindex">. When an index is used to enforce
uniqueness or other constraints, <xref linkend="sql-altertable"> might
be necessary to swap the existing constraint with one enforced by
the new index. Review this alternate multi-step rebuild approach
carefully before using it as there are limitations on which
indexes can be reindexed this way, and errors must be handled.
</para>
</sect1>