mirror of
https://github.com/postgres/postgres.git
synced 2025-12-19 17:02:53 +03:00
Add GUC and storage parameter to set the maximum size of GIN pending list.
Previously the maximum size of GIN pending list was controlled only by work_mem. But the reasonable value of work_mem and the reasonable size of the list are basically not the same, so it was not appropriate to control both of them by only one GUC, i.e., work_mem. This commit separates new GUC, pending_list_cleanup_size, from work_mem to allow users to control only the size of the list. Also this commit adds pending_list_cleanup_size as new storage parameter to allow users to specify the size of the list per index. This is useful, for example, when users want to increase the size of the list only for the GIN index which can be updated heavily, and decrease it otherwise. Reviewed by Etsuro Fujita.
This commit is contained in:
@@ -46,7 +46,7 @@ CLUSTER [VERBOSE]
|
||||
not clustered. That is, no attempt is made to store new or
|
||||
updated rows according to their index order. (If one wishes, one can
|
||||
periodically recluster by issuing the command again. Also, setting
|
||||
the table's <literal>FILLFACTOR</literal> storage parameter to less than
|
||||
the table's <literal>fillfactor</literal> storage parameter to less than
|
||||
100% can aid in preserving cluster ordering during updates, since updated
|
||||
rows are kept on the same page if enough space is available there.)
|
||||
</para>
|
||||
|
||||
@@ -300,7 +300,7 @@ CREATE [ UNIQUE ] INDEX [ CONCURRENTLY ] [ [ IF NOT EXISTS ] <replaceable class=
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><literal>FILLFACTOR</></term>
|
||||
<term><literal>fillfactor</></term>
|
||||
<listitem>
|
||||
<para>
|
||||
The fillfactor for an index is a percentage that determines how full
|
||||
@@ -327,7 +327,7 @@ CREATE [ UNIQUE ] INDEX [ CONCURRENTLY ] [ [ IF NOT EXISTS ] <replaceable class=
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><literal>BUFFERING</></term>
|
||||
<term><literal>buffering</></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Determines whether the buffering build technique described in
|
||||
@@ -341,12 +341,12 @@ CREATE [ UNIQUE ] INDEX [ CONCURRENTLY ] [ [ IF NOT EXISTS ] <replaceable class=
|
||||
</variablelist>
|
||||
|
||||
<para>
|
||||
GIN indexes accept a different parameter:
|
||||
GIN indexes accept different parameters:
|
||||
</para>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><literal>FASTUPDATE</></term>
|
||||
<term><literal>fastupdate</></term>
|
||||
<listitem>
|
||||
<para>
|
||||
This setting controls usage of the fast update technique described in
|
||||
@@ -359,7 +359,7 @@ CREATE [ UNIQUE ] INDEX [ CONCURRENTLY ] [ [ IF NOT EXISTS ] <replaceable class=
|
||||
|
||||
<note>
|
||||
<para>
|
||||
Turning <literal>FASTUPDATE</> off via <command>ALTER INDEX</> prevents
|
||||
Turning <literal>fastupdate</> off via <command>ALTER INDEX</> prevents
|
||||
future insertions from going into the list of pending index entries,
|
||||
but does not in itself flush previous entries. You might want to
|
||||
<command>VACUUM</> the table afterward to ensure the pending list is
|
||||
@@ -369,6 +369,17 @@ CREATE [ UNIQUE ] INDEX [ CONCURRENTLY ] [ [ IF NOT EXISTS ] <replaceable class=
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><literal>pending_list_cleanup_size</></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Custom <xref linkend="guc-pending-list-cleanup-size"> parameter.
|
||||
This value is specified in kilobytes.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect2>
|
||||
|
||||
<refsect2 id="SQL-CREATEINDEX-CONCURRENTLY">
|
||||
|
||||
Reference in New Issue
Block a user