mirror of
https://github.com/postgres/postgres.git
synced 2025-07-31 22:04:40 +03:00
docs: add mention of index swapping
Backpatch to 9.3 Greg Smith
This commit is contained in:
@ -750,8 +750,9 @@ analyze threshold = analyze base threshold + analyze scale factor * number of tu
|
|||||||
|
|
||||||
<para>
|
<para>
|
||||||
In some situations it is worthwhile to rebuild indexes periodically
|
In some situations it is worthwhile to rebuild indexes periodically
|
||||||
with the <xref linkend="sql-reindex">
|
with the <xref linkend="sql-reindex"> command or a series of individual
|
||||||
command.
|
rebuilding steps.
|
||||||
|
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
@ -777,6 +778,23 @@ analyze threshold = analyze base threshold + analyze scale factor * number of tu
|
|||||||
(This consideration does not apply to non-B-tree indexes.) It
|
(This consideration does not apply to non-B-tree indexes.) It
|
||||||
might be worthwhile to reindex periodically just to improve access speed.
|
might be worthwhile to reindex periodically just to improve access speed.
|
||||||
</para>
|
</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>
|
</sect1>
|
||||||
|
|
||||||
|
|
||||||
|
@ -405,7 +405,7 @@ CREATE [ UNIQUE ] INDEX [ CONCURRENTLY ] [ <replaceable class="parameter">name</
|
|||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
If a problem arises while scanning the table, such as a
|
If a problem arises while scanning the table, such as a deadlock or a
|
||||||
uniqueness violation in a unique index, the <command>CREATE INDEX</>
|
uniqueness violation in a unique index, the <command>CREATE INDEX</>
|
||||||
command will fail but leave behind an <quote>invalid</> index. This index
|
command will fail but leave behind an <quote>invalid</> index. This index
|
||||||
will be ignored for querying purposes because it might be incomplete;
|
will be ignored for querying purposes because it might be incomplete;
|
||||||
|
Reference in New Issue
Block a user