{"kind": "relopts", "major": "18", "item": {"slug": "table-fillfactor", "name": "fillfactor", "name_zh": "Tables and materialized views fillfactor", "category": "Tables and materialized views", "summary": "The fillfactor for a table is a percentage between 10 and 100. 100 (complete packing) is the default. When a smaller fillfactor is specified, INSERT operations pack table pages only to the indicated percentage; the remaining space on each page is reserved for updating rows on that page. This gives UPDATE a chance to place the updated copy of a row on the same page as the original, which is more efficient than placing it on a different page, and makes heap-only tuple updates more likely. For a table whose entries are never updated, complete packing is the best choice, but in heavily updated tables smaller fillfactors are appropriate. This parameter cannot be set for TOAST tables.", "aliases": ["table.fillfactor"], "versions": {"10": {"facts": [{"label": "Applies to", "value": "Tables and materialized views"}, {"label": "Value type", "value": "integer"}, {"label": "Default", "value": "100"}, {"label": "Range", "value": "10\u2013100 percent"}], "related": [{"url": "/docs/sql/create-table/?v=10", "label": "CREATE TABLE"}], "release": {"ref": "Local English manual 10.23", "label": "10.23", "major": "10", "channel": "historical", "revision": "4ff6f6193d91bf44fc701f657cc3295850bf786e42eafbfeed9f4879c3522613"}, "sources": [{"url": "/docs/10/sql-createtable.html#SQL-CREATETABLE-STORAGE-PARAMETERS", "path": "sql-createtable.html", "label": "PostgreSQL 10 English manual", "sha256": "6a9df6e68f8acd82ca864475616f6c1cf483c97f96abfc2c2abd565aeb4129a5"}, {"url": "/docs/10/sql-creatematerializedview.html", "path": "sql-creatematerializedview.html", "label": "PostgreSQL 10 English manual", "sha256": "46695b2591db26e272812f8d72ebfb2f37bbbf419123ff71792fe0af027ce785"}], "sections": [{"title": "Scope", "paragraphs": ["This relation-level setting applies to the table or materialized view. Any corresponding global parameter has a separate entry."]}, {"title": "Common table storage rules", "paragraphs": ["The WITH clause can specify storage parameters for tables, and for indexes associated with a UNIQUE , PRIMARY KEY , or EXCLUDE constraint. Storage parameters for indexes are documented in CREATE INDEX . The storage parameters currently available for tables are listed below. For many of these parameters, as shown, there is an additional parameter with the same name prefixed with toast. , which controls the behavior of the table's secondary TOAST table, if any (see Section 67.2 for more information about TOAST). If a table parameter value is set and the equivalent toast. parameter is not, the TOAST table will use the table's parameter value. Specifying these parameters for partitioned tables is not supported, but you may specify them for individual leaf partitions."]}, {"title": "Materialized views", "paragraphs": ["This clause specifies optional storage parameters for the new materialized view; see Storage Parameters for more information. All parameters supported for CREATE TABLE are also supported for CREATE MATERIALIZED VIEW with the exception of OIDS . See CREATE TABLE for more information."]}], "signature": "WITH (fillfactor = value)", "description": ["The fillfactor for a table is a percentage between 10 and 100. 100 (complete packing) is the default. When a smaller fillfactor is specified, INSERT operations pack table pages only to the indicated percentage; the remaining space on each page is reserved for updating rows on that page. This gives UPDATE a chance to place the updated copy of a row on the same page as the original, which is more efficient than placing it on a different page. For a table whose entries are never updated, complete packing is the best choice, but in heavily updated tables smaller fillfactors are appropriate. This parameter cannot be set for TOAST tables."]}, "11": {"facts": [{"label": "Applies to", "value": "Tables and materialized views"}, {"label": "Value type", "value": "integer"}, {"label": "Default", "value": "100"}, {"label": "Range", "value": "10\u2013100 percent"}], "related": [{"url": "/docs/sql/create-table/?v=11", "label": "CREATE TABLE"}], "release": {"ref": "Local English manual 11.22", "label": "11.22", "major": "11", "channel": "historical", "revision": "284f2186559443efefbb1ea3b00740c25dccd01e540ecbdb81dadf5127e54a0b"}, "sources": [{"url": "/docs/11/sql-createtable.html#SQL-CREATETABLE-STORAGE-PARAMETERS", "path": "sql-createtable.html", "label": "PostgreSQL 11 English manual", "sha256": "46282e6bc95b6c42283c9fe7b79c31be21cafaa5a18dda82b7793cd21f400075"}, {"url": "/docs/11/sql-creatematerializedview.html", "path": "sql-creatematerializedview.html", "label": "PostgreSQL 11 English manual", "sha256": "c9718b3ccdec9aea0bff15bbe8c31ceaff935ebb0c2d372ce37101924aafe5d3"}], "sections": [{"title": "Scope", "paragraphs": ["This relation-level setting applies to the table or materialized view. Any corresponding global parameter has a separate entry."]}, {"title": "Common table storage rules", "paragraphs": ["The WITH clause can specify storage parameters for tables, and for indexes associated with a UNIQUE , PRIMARY KEY , or EXCLUDE constraint. Storage parameters for indexes are documented in CREATE INDEX . The storage parameters currently available for tables are listed below. For many of these parameters, as shown, there is an additional parameter with the same name prefixed with toast. , which controls the behavior of the table's secondary TOAST table, if any (see Section 69.2 for more information about TOAST). If a table parameter value is set and the equivalent toast. parameter is not, the TOAST table will use the table's parameter value. Specifying these parameters for partitioned tables is not supported, but you may specify them for individual leaf partitions."]}, {"title": "Materialized views", "paragraphs": ["This clause specifies optional storage parameters for the new materialized view; see Storage Parameters for more information. All parameters supported for CREATE TABLE are also supported for CREATE MATERIALIZED VIEW with the exception of OIDS . See CREATE TABLE for more information."]}], "signature": "WITH (fillfactor = value)", "description": ["The fillfactor for a table is a percentage between 10 and 100. 100 (complete packing) is the default. When a smaller fillfactor is specified, INSERT operations pack table pages only to the indicated percentage; the remaining space on each page is reserved for updating rows on that page. This gives UPDATE a chance to place the updated copy of a row on the same page as the original, which is more efficient than placing it on a different page, and makes heap-only tuple updates more likely. For a table whose entries are never updated, complete packing is the best choice, but in heavily updated tables smaller fillfactors are appropriate. This parameter cannot be set for TOAST tables."]}, "12": {"facts": [{"label": "Applies to", "value": "Tables and materialized views"}, {"label": "Value type", "value": "integer"}, {"label": "Default", "value": "100"}, {"label": "Range", "value": "10\u2013100 percent"}], "related": [{"url": "/docs/sql/create-table/?v=12", "label": "CREATE TABLE"}], "release": {"ref": "Local English manual 12.22", "label": "12.22", "major": "12", "channel": "historical", "revision": "0a1032bc0c23478646e9ee7d36edb066dca27b8540fd64d7fd47dcb6a8a6ccb4"}, "sources": [{"url": "/docs/12/sql-createtable.html#RELOPTION-FILLFACTOR", "path": "sql-createtable.html", "label": "PostgreSQL 12 English manual", "sha256": "7210cf3ff82ffa37ef81ebbbc252e4807649dcb86050eaa3ea5fcba40a768656"}, {"url": "/docs/12/sql-creatematerializedview.html", "path": "sql-creatematerializedview.html", "label": "PostgreSQL 12 English manual", "sha256": "2656497bc190ed29c24c29787f3ae68621830eee6345d291700c1ef8843f8dfe"}], "sections": [{"title": "Scope", "paragraphs": ["This relation-level setting applies to the table or materialized view. Any corresponding global parameter has a separate entry."]}, {"title": "Common table storage rules", "paragraphs": ["The WITH clause can specify storage parameters for tables, and for indexes associated with a UNIQUE , PRIMARY KEY , or EXCLUDE constraint. Storage parameters for indexes are documented in CREATE INDEX . The storage parameters currently available for tables are listed below. For many of these parameters, as shown, there is an additional parameter with the same name prefixed with toast. , which controls the behavior of the table's secondary TOAST table, if any (see Section 69.2 for more information about TOAST). If a table parameter value is set and the equivalent toast. parameter is not, the TOAST table will use the table's parameter value. Specifying these parameters for partitioned tables is not supported, but you may specify them for individual leaf partitions."]}, {"title": "Materialized views", "paragraphs": ["This clause specifies optional storage parameters for the new materialized view; see Storage Parameters for more information. All parameters supported for CREATE TABLE are also supported for CREATE MATERIALIZED VIEW . See CREATE TABLE for more information."]}], "signature": "WITH (fillfactor = value)", "description": ["The fillfactor for a table is a percentage between 10 and 100. 100 (complete packing) is the default. When a smaller fillfactor is specified, INSERT operations pack table pages only to the indicated percentage; the remaining space on each page is reserved for updating rows on that page. This gives UPDATE a chance to place the updated copy of a row on the same page as the original, which is more efficient than placing it on a different page, and makes heap-only tuple updates more likely. For a table whose entries are never updated, complete packing is the best choice, but in heavily updated tables smaller fillfactors are appropriate. This parameter cannot be set for TOAST tables."]}, "13": {"facts": [{"label": "Applies to", "value": "Tables and materialized views"}, {"label": "Value type", "value": "integer"}, {"label": "Default", "value": "100"}, {"label": "Range", "value": "10\u2013100 percent"}], "related": [{"url": "/docs/sql/create-table/?v=13", "label": "CREATE TABLE"}], "release": {"ref": "Local English manual 13.23", "label": "13.23", "major": "13", "channel": "historical", "revision": "346825c2d5fbebb2bd997afbb2d49edfd782dce050c0b934e84a883e5446a99f"}, "sources": [{"url": "/docs/13/sql-createtable.html#RELOPTION-FILLFACTOR", "path": "sql-createtable.html", "label": "PostgreSQL 13 English manual", "sha256": "912dd15faaa243438f33082160f2848636d1940afea42c36cf6d21a2a46c8cb8"}, {"url": "/docs/13/sql-creatematerializedview.html", "path": "sql-creatematerializedview.html", "label": "PostgreSQL 13 English manual", "sha256": "1d2de5d4ff709d2bab07b91c964d89ce8b9236d9aa99b83b79392d24d7b74fd3"}], "sections": [{"title": "Scope", "paragraphs": ["This relation-level setting applies to the table or materialized view. Any corresponding global parameter has a separate entry."]}, {"title": "Common table storage rules", "paragraphs": ["The WITH clause can specify storage parameters for tables, and for indexes associated with a UNIQUE , PRIMARY KEY , or EXCLUDE constraint. Storage parameters for indexes are documented in CREATE INDEX . The storage parameters currently available for tables are listed below. For many of these parameters, as shown, there is an additional parameter with the same name prefixed with toast. , which controls the behavior of the table's secondary TOAST table, if any (see Section 69.2 for more information about TOAST). If a table parameter value is set and the equivalent toast. parameter is not, the TOAST table will use the table's parameter value. Specifying these parameters for partitioned tables is not supported, but you may specify them for individual leaf partitions."]}, {"title": "Materialized views", "paragraphs": ["This clause specifies optional storage parameters for the new materialized view; see Storage Parameters in the CREATE TABLE documentation for more information. All parameters supported for CREATE TABLE are also supported for CREATE MATERIALIZED VIEW . See CREATE TABLE for more information."]}], "signature": "WITH (fillfactor = value)", "description": ["The fillfactor for a table is a percentage between 10 and 100. 100 (complete packing) is the default. When a smaller fillfactor is specified, INSERT operations pack table pages only to the indicated percentage; the remaining space on each page is reserved for updating rows on that page. This gives UPDATE a chance to place the updated copy of a row on the same page as the original, which is more efficient than placing it on a different page, and makes heap-only tuple updates more likely. For a table whose entries are never updated, complete packing is the best choice, but in heavily updated tables smaller fillfactors are appropriate. This parameter cannot be set for TOAST tables."]}, "14": {"facts": [{"label": "Applies to", "value": "Tables and materialized views"}, {"label": "Value type", "value": "integer"}, {"label": "Default", "value": "100"}, {"label": "Range", "value": "10\u2013100 percent"}], "related": [{"url": "/docs/sql/create-table/?v=14", "label": "CREATE TABLE"}], "release": {"ref": "Local English manual 14.24", "label": "14.24", "major": "14", "channel": "stable", "revision": "b6e7ed6d017bf1d63aae215156cde763babd657199df9fa10123733290c31260"}, "sources": [{"url": "/docs/14/sql-createtable.html#RELOPTION-FILLFACTOR", "path": "sql-createtable.html", "label": "PostgreSQL 14 English manual", "sha256": "2d92d1040e37f5d94ce279dc9f1555a720179397fcf3aa8412f5278ec1d943e8"}, {"url": "/docs/14/sql-creatematerializedview.html", "path": "sql-creatematerializedview.html", "label": "PostgreSQL 14 English manual", "sha256": "50aea483dd80c78b2bd3cac754341070bfc96e436139f0137d762b3f65834c3c"}], "sections": [{"title": "Scope", "paragraphs": ["This relation-level setting applies to the table or materialized view. Any corresponding global parameter has a separate entry."]}, {"title": "Common table storage rules", "paragraphs": ["The WITH clause can specify storage parameters for tables, and for indexes associated with a UNIQUE , PRIMARY KEY , or EXCLUDE constraint. Storage parameters for indexes are documented in CREATE INDEX . The storage parameters currently available for tables are listed below. For many of these parameters, as shown, there is an additional parameter with the same name prefixed with toast. , which controls the behavior of the table's secondary TOAST table, if any (see Section 70.2 for more information about TOAST). If a table parameter value is set and the equivalent toast. parameter is not, the TOAST table will use the table's parameter value. Specifying these parameters for partitioned tables is not supported, but you may specify them for individual leaf partitions."]}, {"title": "Materialized views", "paragraphs": ["This clause specifies optional storage parameters for the new materialized view; see Storage Parameters in the CREATE TABLE documentation for more information. All parameters supported for CREATE TABLE are also supported for CREATE MATERIALIZED VIEW . See CREATE TABLE for more information."]}], "signature": "WITH (fillfactor = value)", "description": ["The fillfactor for a table is a percentage between 10 and 100. 100 (complete packing) is the default. When a smaller fillfactor is specified, INSERT operations pack table pages only to the indicated percentage; the remaining space on each page is reserved for updating rows on that page. This gives UPDATE a chance to place the updated copy of a row on the same page as the original, which is more efficient than placing it on a different page, and makes heap-only tuple updates more likely. For a table whose entries are never updated, complete packing is the best choice, but in heavily updated tables smaller fillfactors are appropriate. This parameter cannot be set for TOAST tables."]}, "15": {"facts": [{"label": "Applies to", "value": "Tables and materialized views"}, {"label": "Value type", "value": "integer"}, {"label": "Default", "value": "100"}, {"label": "Range", "value": "10\u2013100 percent"}], "related": [{"url": "/docs/sql/create-table/?v=15", "label": "CREATE TABLE"}], "release": {"ref": "Local English manual 15.19", "label": "15.19", "major": "15", "channel": "stable", "revision": "643ecd492fa284d4d55861f15cbd7c0c7451abce96c8d56485bb2729caba37d5"}, "sources": [{"url": "/docs/15/sql-createtable.html#RELOPTION-FILLFACTOR", "path": "sql-createtable.html", "label": "PostgreSQL 15 English manual", "sha256": "dcb246be9d6131c7227ccde6745458865a0c97ac4c8891c2cbea73a30769d6df"}, {"url": "/docs/15/sql-creatematerializedview.html", "path": "sql-creatematerializedview.html", "label": "PostgreSQL 15 English manual", "sha256": "9ce92d3a1afc7c70db12b6e3c2f163e2539cf86dbf0f1e9e6c44035b88bb10f7"}], "sections": [{"title": "Scope", "paragraphs": ["This relation-level setting applies to the table or materialized view. Any corresponding global parameter has a separate entry."]}, {"title": "Common table storage rules", "paragraphs": ["The WITH clause can specify storage parameters for tables, and for indexes associated with a UNIQUE , PRIMARY KEY , or EXCLUDE constraint. Storage parameters for indexes are documented in CREATE INDEX . The storage parameters currently available for tables are listed below. For many of these parameters, as shown, there is an additional parameter with the same name prefixed with toast. , which controls the behavior of the table's secondary TOAST table, if any (see Section 73.2 for more information about TOAST). If a table parameter value is set and the equivalent toast. parameter is not, the TOAST table will use the table's parameter value. Specifying these parameters for partitioned tables is not supported, but you may specify them for individual leaf partitions."]}, {"title": "Materialized views", "paragraphs": ["This clause specifies optional storage parameters for the new materialized view; see Storage Parameters in the CREATE TABLE documentation for more information. All parameters supported for CREATE TABLE are also supported for CREATE MATERIALIZED VIEW . See CREATE TABLE for more information."]}], "signature": "WITH (fillfactor = value)", "description": ["The fillfactor for a table is a percentage between 10 and 100. 100 (complete packing) is the default. When a smaller fillfactor is specified, INSERT operations pack table pages only to the indicated percentage; the remaining space on each page is reserved for updating rows on that page. This gives UPDATE a chance to place the updated copy of a row on the same page as the original, which is more efficient than placing it on a different page, and makes heap-only tuple updates more likely. For a table whose entries are never updated, complete packing is the best choice, but in heavily updated tables smaller fillfactors are appropriate. This parameter cannot be set for TOAST tables."]}, "16": {"facts": [{"label": "Applies to", "value": "Tables and materialized views"}, {"label": "Value type", "value": "integer"}, {"label": "Default", "value": "100"}, {"label": "Range", "value": "10\u2013100 percent"}], "related": [{"url": "/docs/sql/create-table/?v=16", "label": "CREATE TABLE"}], "release": {"ref": "Local English manual 16.15", "label": "16.15", "major": "16", "channel": "stable", "revision": "0080d7d37081f27216dc4aa4f6ad85ea24c0c0441e702e6d0b190a339fd76f62"}, "sources": [{"url": "/docs/16/sql-createtable.html#RELOPTION-FILLFACTOR", "path": "sql-createtable.html", "label": "PostgreSQL 16 English manual", "sha256": "dde6108abda6f7358eeccc6867eb68f5ca601329ea3f50bc3d5b728c944a65a8"}, {"url": "/docs/16/sql-creatematerializedview.html", "path": "sql-creatematerializedview.html", "label": "PostgreSQL 16 English manual", "sha256": "1a7ac648e9e3a49d0eab9de3b1214e1c64a16fc84fbee4c78c9f825b2c30af25"}], "sections": [{"title": "Scope", "paragraphs": ["This relation-level setting applies to the table or materialized view. Any corresponding global parameter has a separate entry."]}, {"title": "Common table storage rules", "paragraphs": ["The WITH clause can specify storage parameters for tables, and for indexes associated with a UNIQUE , PRIMARY KEY , or EXCLUDE constraint. Storage parameters for indexes are documented in CREATE INDEX . The storage parameters currently available for tables are listed below. For many of these parameters, as shown, there is an additional parameter with the same name prefixed with toast. , which controls the behavior of the table's secondary TOAST table, if any (see Section 73.2 for more information about TOAST). If a table parameter value is set and the equivalent toast. parameter is not, the TOAST table will use the table's parameter value. Specifying these parameters for partitioned tables is not supported, but you may specify them for individual leaf partitions."]}, {"title": "Materialized views", "paragraphs": ["This clause specifies optional storage parameters for the new materialized view; see Storage Parameters in the CREATE TABLE documentation for more information. All parameters supported for CREATE TABLE are also supported for CREATE MATERIALIZED VIEW . See CREATE TABLE for more information."]}], "signature": "WITH (fillfactor = value)", "description": ["The fillfactor for a table is a percentage between 10 and 100. 100 (complete packing) is the default. When a smaller fillfactor is specified, INSERT operations pack table pages only to the indicated percentage; the remaining space on each page is reserved for updating rows on that page. This gives UPDATE a chance to place the updated copy of a row on the same page as the original, which is more efficient than placing it on a different page, and makes heap-only tuple updates more likely. For a table whose entries are never updated, complete packing is the best choice, but in heavily updated tables smaller fillfactors are appropriate. This parameter cannot be set for TOAST tables."]}, "17": {"facts": [{"label": "Applies to", "value": "Tables and materialized views"}, {"label": "Value type", "value": "integer"}, {"label": "Default", "value": "100"}, {"label": "Range", "value": "10\u2013100 percent"}], "related": [{"url": "/docs/sql/create-table/?v=17", "label": "CREATE TABLE"}], "release": {"ref": "Local English manual 17.11", "label": "17.11", "major": "17", "channel": "stable", "revision": "440f894c3464e7cb4fedc9846b948ca21cd2ffcef1697ff56a28eb641ee7c3d8"}, "sources": [{"url": "/docs/17/sql-createtable.html#RELOPTION-FILLFACTOR", "path": "sql-createtable.html", "label": "PostgreSQL 17 English manual", "sha256": "97385c16a0ff155ad89fe616bb074bf0a8328bcb21f5e64a7a6a0a03ddb1f4ef"}, {"url": "/docs/17/sql-creatematerializedview.html", "path": "sql-creatematerializedview.html", "label": "PostgreSQL 17 English manual", "sha256": "88a9853b1cf1df2e9e468f5ef51e6f1932ffd000b37c298027a7cdef9bf0461f"}], "sections": [{"title": "Scope", "paragraphs": ["This relation-level setting applies to the table or materialized view. Any corresponding global parameter has a separate entry."]}, {"title": "Common table storage rules", "paragraphs": ["The WITH clause can specify storage parameters for tables, and for indexes associated with a UNIQUE , PRIMARY KEY , or EXCLUDE constraint. Storage parameters for indexes are documented in CREATE INDEX . The storage parameters currently available for tables are listed below. For many of these parameters, as shown, there is an additional parameter with the same name prefixed with toast. , which controls the behavior of the table's secondary TOAST table, if any (see Section 65.2 for more information about TOAST). If a table parameter value is set and the equivalent toast. parameter is not, the TOAST table will use the table's parameter value. Specifying these parameters for partitioned tables is not supported, but you may specify them for individual leaf partitions."]}, {"title": "Materialized views", "paragraphs": ["This clause specifies optional storage parameters for the new materialized view; see Storage Parameters in the CREATE TABLE documentation for more information. All parameters supported for CREATE TABLE are also supported for CREATE MATERIALIZED VIEW . See CREATE TABLE for more information."]}], "signature": "WITH (fillfactor = value)", "description": ["The fillfactor for a table is a percentage between 10 and 100. 100 (complete packing) is the default. When a smaller fillfactor is specified, INSERT operations pack table pages only to the indicated percentage; the remaining space on each page is reserved for updating rows on that page. This gives UPDATE a chance to place the updated copy of a row on the same page as the original, which is more efficient than placing it on a different page, and makes heap-only tuple updates more likely. For a table whose entries are never updated, complete packing is the best choice, but in heavily updated tables smaller fillfactors are appropriate. This parameter cannot be set for TOAST tables."]}, "18": {"facts": [{"label": "Applies to", "value": "Tables and materialized views"}, {"label": "Value type", "value": "integer"}, {"label": "Default", "value": "100"}, {"label": "Range", "value": "10\u2013100 percent"}], "related": [{"url": "/docs/sql/create-table/?v=18", "label": "CREATE TABLE"}], "release": {"ref": "Local English manual 18.6", "label": "18.6", "major": "18", "channel": "stable", "revision": "eb6c2292fdf28e1b4635ab478eec3919411cdf4a6c07553387870e26201f3744"}, "sources": [{"url": "/docs/18/sql-createtable.html#RELOPTION-FILLFACTOR", "path": "sql-createtable.html", "label": "PostgreSQL 18 English manual", "sha256": "b4d703391fe1102d0e02bd6769bef928513eb7a5542f38f7448fc77fe69e0d5b"}, {"url": "/docs/18/sql-creatematerializedview.html", "path": "sql-creatematerializedview.html", "label": "PostgreSQL 18 English manual", "sha256": "bd8a6710c9f133afee191eb0ec345ef8c54bb54db2242621d8cb683c783a8b18"}], "sections": [{"title": "Scope", "paragraphs": ["This relation-level setting applies to the table or materialized view. Any corresponding global parameter has a separate entry."]}, {"title": "Common table storage rules", "paragraphs": ["The WITH clause can specify storage parameters for tables, and for indexes associated with a UNIQUE , PRIMARY KEY , or EXCLUDE constraint. Storage parameters for indexes are documented in CREATE INDEX . The storage parameters currently available for tables are listed below. For many of these parameters, as shown, there is an additional parameter with the same name prefixed with toast. , which controls the behavior of the table's secondary TOAST table, if any (see Section 66.2 for more information about TOAST). If a table parameter value is set and the equivalent toast. parameter is not, the TOAST table will use the table's parameter value. Specifying these parameters for partitioned tables is not supported, but you may specify them for individual leaf partitions."]}, {"title": "Materialized views", "paragraphs": ["This clause specifies optional storage parameters for the new materialized view; see Storage Parameters in the CREATE TABLE documentation for more information. All parameters supported for CREATE TABLE are also supported for CREATE MATERIALIZED VIEW . See CREATE TABLE for more information."]}], "signature": "WITH (fillfactor = value)", "description": ["The fillfactor for a table is a percentage between 10 and 100. 100 (complete packing) is the default. When a smaller fillfactor is specified, INSERT operations pack table pages only to the indicated percentage; the remaining space on each page is reserved for updating rows on that page. This gives UPDATE a chance to place the updated copy of a row on the same page as the original, which is more efficient than placing it on a different page, and makes heap-only tuple updates more likely. For a table whose entries are never updated, complete packing is the best choice, but in heavily updated tables smaller fillfactors are appropriate. This parameter cannot be set for TOAST tables."]}, "19": {"facts": [{"label": "Applies to", "value": "Tables and materialized views"}, {"label": "Value type", "value": "integer"}, {"label": "Default", "value": "100"}, {"label": "Range", "value": "10\u2013100 percent"}], "related": [{"url": "/docs/sql/create-table/?v=19", "label": "CREATE TABLE"}], "release": {"ref": "Local English manual 19 beta 4", "label": "19 beta 4", "major": "19", "channel": "preview", "revision": "df6d20830d1a09734a2db6ffc3a6138ce80e669294e56a30f6b5d4a89d81aef1"}, "sources": [{"url": "/docs/19/sql-createtable.html#RELOPTION-FILLFACTOR", "path": "sql-createtable.html", "label": "PostgreSQL 19 English manual", "sha256": "75f290d105bd0e76c798f124b1eed4ad1e871c8a1d36c35f0db9d38fbb7209f8"}, {"url": "/docs/19/sql-creatematerializedview.html", "path": "sql-creatematerializedview.html", "label": "PostgreSQL 19 English manual", "sha256": "83626ff1539571da05619161c2d806590cac53ae060cea60018c6f63c6c02bf6"}], "sections": [{"title": "Scope", "paragraphs": ["This relation-level setting applies to the table or materialized view. Any corresponding global parameter has a separate entry."]}, {"title": "Common table storage rules", "paragraphs": ["The WITH clause can specify storage parameters for tables, and for indexes associated with a UNIQUE , PRIMARY KEY , or EXCLUDE constraint. Storage parameters for indexes are documented in CREATE INDEX . The storage parameters currently available for tables are listed below. For many of these parameters, as shown, there is an additional parameter with the same name prefixed with toast. , which controls the behavior of the table's secondary TOAST table, if any (see Section 66.2 for more information about TOAST). If a table parameter value is set and the equivalent toast. parameter is not, the TOAST table will use the table's parameter value. Specifying these parameters for partitioned tables is not supported, but you may specify them for individual leaf partitions."]}, {"title": "Materialized views", "paragraphs": ["This clause specifies optional storage parameters for the new materialized view; see Storage Parameters in the CREATE TABLE documentation for more information. All parameters supported for CREATE TABLE are also supported for CREATE MATERIALIZED VIEW . See CREATE TABLE for more information."]}], "signature": "WITH (fillfactor = value)", "description": ["The fillfactor for a table is a percentage between 10 and 100. 100 (complete packing) is the default. When a smaller fillfactor is specified, INSERT operations pack table pages only to the indicated percentage; the remaining space on each page is reserved for updating rows on that page. This gives UPDATE a chance to place the updated copy of a row on the same page as the original, which is more efficient than placing it on a different page, and makes heap-only tuple updates more likely. For a table whose entries are never updated, complete packing is the best choice, but in heavily updated tables smaller fillfactors are appropriate. This parameter cannot be set for TOAST tables."]}, "20": {"facts": [{"label": "Applies to", "value": "Tables and materialized views"}, {"label": "Value type", "value": "integer"}, {"label": "Default", "value": "100"}, {"label": "Range", "value": "10\u2013100 percent"}], "related": [{"url": "/docs/sql/create-table/?v=20", "label": "CREATE TABLE"}], "release": {"ref": "2c10c2ce4d7bcd57543a49ab402af02a39724e0a", "label": "20 devel", "major": "20", "channel": "devel", "revision": "ca199fbaaf6c4bd29cd5a98beaf34d9f4141c15d2f94d1d0202f3204ef18d09f"}, "sources": [{"url": "/docs/devel/sql-createtable.html#RELOPTION-FILLFACTOR", "path": "sql-createtable.html", "label": "PostgreSQL 20 English manual", "sha256": "5241bd673de4e7a8fec7db6fa2a3a50d8368965206170725c4efd15d64c3fbf2"}, {"url": "/docs/devel/sql-creatematerializedview.html", "path": "sql-creatematerializedview.html", "label": "PostgreSQL 20 English manual", "sha256": "2870e714f1d3ef3bb692310424bb0e8fc1905c7b4a46317c5be883c70daa90c2"}], "sections": [{"title": "Scope", "paragraphs": ["This relation-level setting applies to the table or materialized view. Any corresponding global parameter has a separate entry."]}, {"title": "Common table storage rules", "paragraphs": ["The WITH clause can specify storage parameters for tables, and for indexes associated with a UNIQUE , PRIMARY KEY , or EXCLUDE constraint. Storage parameters for indexes are documented in CREATE INDEX . The storage parameters currently available for tables are listed below. For many of these parameters, as shown, there is an additional parameter with the same name prefixed with toast. , which controls the behavior of the table's secondary TOAST table, if any (see Section 66.2 for more information about TOAST). If a table parameter value is set and the equivalent toast. parameter is not, the TOAST table will use the table's parameter value. Specifying these parameters for partitioned tables is not supported, but you may specify them for individual leaf partitions."]}, {"title": "Materialized views", "paragraphs": ["This clause specifies optional storage parameters for the new materialized view; see Storage Parameters in the CREATE TABLE documentation for more information. All parameters supported for CREATE TABLE are also supported for CREATE MATERIALIZED VIEW . See CREATE TABLE for more information."]}], "signature": "WITH (fillfactor = value)", "description": ["The fillfactor for a table is a percentage between 10 and 100. 100 (complete packing) is the default. When a smaller fillfactor is specified, INSERT operations pack table pages only to the indicated percentage; the remaining space on each page is reserved for updating rows on that page. This gives UPDATE a chance to place the updated copy of a row on the same page as the original, which is more efficient than placing it on a different page, and makes heap-only tuple updates more likely. For a table whose entries are never updated, complete packing is the best choice, but in heavily updated tables smaller fillfactors are appropriate. This parameter cannot be set for TOAST tables."]}}, "content_hash": "cabfedbbeb8e859b2e0122a29f11e1baf6b88ed75541ac79d84688b46c9417ff", "imported_at": "2026-09-27T09:57:58.959"}, "snapshot": {"facts": [{"label": "Applies to", "value": "Tables and materialized views"}, {"label": "Value type", "value": "integer"}, {"label": "Default", "value": "100"}, {"label": "Range", "value": "10\u2013100 percent"}], "related": [{"url": "/docs/sql/create-table/?v=18", "label": "CREATE TABLE"}], "release": {"ref": "Local English manual 18.6", "label": "18.6", "major": "18", "channel": "stable", "revision": "eb6c2292fdf28e1b4635ab478eec3919411cdf4a6c07553387870e26201f3744"}, "sources": [{"url": "/docs/18/sql-createtable.html#RELOPTION-FILLFACTOR", "path": "sql-createtable.html", "label": "PostgreSQL 18 English manual", "sha256": "b4d703391fe1102d0e02bd6769bef928513eb7a5542f38f7448fc77fe69e0d5b"}, {"url": "/docs/18/sql-creatematerializedview.html", "path": "sql-creatematerializedview.html", "label": "PostgreSQL 18 English manual", "sha256": "bd8a6710c9f133afee191eb0ec345ef8c54bb54db2242621d8cb683c783a8b18"}], "sections": [{"title": "Scope", "paragraphs": ["This relation-level setting applies to the table or materialized view. Any corresponding global parameter has a separate entry."]}, {"title": "Common table storage rules", "paragraphs": ["The WITH clause can specify storage parameters for tables, and for indexes associated with a UNIQUE , PRIMARY KEY , or EXCLUDE constraint. Storage parameters for indexes are documented in CREATE INDEX . The storage parameters currently available for tables are listed below. For many of these parameters, as shown, there is an additional parameter with the same name prefixed with toast. , which controls the behavior of the table's secondary TOAST table, if any (see Section 66.2 for more information about TOAST). If a table parameter value is set and the equivalent toast. parameter is not, the TOAST table will use the table's parameter value. Specifying these parameters for partitioned tables is not supported, but you may specify them for individual leaf partitions."]}, {"title": "Materialized views", "paragraphs": ["This clause specifies optional storage parameters for the new materialized view; see Storage Parameters in the CREATE TABLE documentation for more information. All parameters supported for CREATE TABLE are also supported for CREATE MATERIALIZED VIEW . See CREATE TABLE for more information."]}], "signature": "WITH (fillfactor = value)", "description": ["The fillfactor for a table is a percentage between 10 and 100. 100 (complete packing) is the default. When a smaller fillfactor is specified, INSERT operations pack table pages only to the indicated percentage; the remaining space on each page is reserved for updating rows on that page. This gives UPDATE a chance to place the updated copy of a row on the same page as the original, which is more efficient than placing it on a different page, and makes heap-only tuple updates more likely. For a table whose entries are never updated, complete packing is the best choice, but in heavily updated tables smaller fillfactors are appropriate. This parameter cannot be set for TOAST tables."]}, "comparison": {"left": "17", "right": "18", "status": "unchanged", "diff": ""}}