{"Entry":{"collection":"guc","key":"min_parallel_index_scan_size","name":"min_parallel_index_scan_size","aliases":[],"metadata":{"baseline":false,"boot_human":"Not specified","boot_val":null,"category":"Query Tuning / Planner Cost Constants","category_zh":"","changed_in":[],"changes":[{"documentation_changed":false,"fields":{},"from":"9.6","status":"added","to":"10"},{"documentation_changed":true,"fields":{},"from":"11","status":"changed","to":"12"},{"documentation_changed":true,"fields":{},"from":"12","status":"changed","to":"13"}],"content_hash":"d7514fbd03551836710d176cde67b9d425e231e3171950b614832a124236630a","context":"","default_changed_in":[],"default_history":[{"from":"10","to":"19","value":"512 KiB (64 × 8kB)"}],"derived_content_hash":"f6f1ca84280b2f3374d39aa82323c5d17f519531a245c25c44735952c3224b1d","editorial":{"advice":{"olap":"Keep the upstream threshold unless small but expensive scans are wrongly excluded. Lowering min_parallel_index_scan_size can raise planning and worker overhead when many queries run concurrently.","oltp":"A higher min_parallel_index_scan_size can reduce parallel startup on short OLTP scans, but confirm that reports and maintenance do not regress.","small":"Prefer a conservative or higher threshold on a small host where worker startup and memory contention dominate. Coordinate it with max_parallel_workers_per_gather rather than tuning it alone."},"mechanism":["min_parallel_index_scan_size is a planner eligibility floor: parallel scan paths are not considered unless index pages estimated to be visited reaches the configured size.","Crossing this floor does not guarantee a parallel plan. The planner still compares costs, checks parallel safety, and requests workers subject to max_parallel_workers_per_gather and the cluster worker pools.","The index threshold also participates in deciding whether an index can be vacuumed in parallel. Its user context permits session- or transaction-local changes; newly performed or newly planned work sees the value."],"pitfalls":["Assuming the threshold caps actual bytes read; it only controls planner eligibility.","Expecting a parallel plan merely because the size estimate crosses the threshold.","Lowering it without budgeting workers and per-node memory under concurrency.","Comparing the raw numeric value without applying its 8kB block unit."],"references":[{"title":"PostgreSQL 19 Beta 4: min_parallel_index_scan_size","url":"https://www.postgresql.org/docs/19/runtime-config-query.html#GUC-MIN-PARALLEL-INDEX-SCAN-SIZE"},{"title":"PostgreSQL 19 release notes","url":"https://www.postgresql.org/docs/19/release-19.html"}],"related":["max_parallel_workers_per_gather","parallel_setup_cost","parallel_tuple_cost","max_parallel_workers","enable_indexscan"],"summary":"min_parallel_index_scan_size — Sets the minimum amount of index data for a parallel scan. Observed in PG10–19 Beta 4; its last measured boot default is 512 KiB (64 × 8kB) in PG19 Beta 4, with user context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA."},"enumvals":[],"first_version":"10","group":"Query Tuning","group_slug":"query","imported_at":"2026-09-27T17:57:31.778676+08:00","intro_commit":{"authored_at":"2017-02-15T13:37:24-05:00","discussion":["https://postgr.es/m/CAA4eK1KowGSYYVpd2qPpaPPA5R90r++QwDFbrRECTE9H_HvpOg@mail.gmail.com","https://postgr.es/m/CAA4eK1+TnM4pXQbvn7OXqam+k_HZqb0ROZUMxOiL6DWJYCyYow@mail.gmail.com"],"hash":"51ee6f3160d2e1515ed6197594bda67eb99dc2cc","subject":"Replace min_parallel_relation_size with two new GUCs.","url":"https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=51ee6f3160d2e1515ed6197594bda67eb99dc2cc"},"key":"min_parallel_index_scan_size","last_version":"20","max_val":"","min_val":"","name":"min_parallel_index_scan_size","position":294,"present_in":["10","11","12","13","14","15","16","17","18","19","20"],"repair_provenance":{"original_source_revision":"english-manuals:2b131290bf4eca74d73d096c1580640a951a50429c6dc6edfba02333e38ee1e5","receipt_sha256":"05462921e84889a2299d240a0331cd713458f2b6cd471ce2bc99a965a6d077ff","repair":"wiki-repair-20261023"},"short_desc":"Sets the minimum amount of index data that must be scanned in order for a parallel scan to be considered.","short_desc_zh":"","source_rev":"wiki-repair-20261023:400b7b8f6e0b740197e3a81d031685b045e188734943f3c5c221c45dbbacbbb7","unit":"","vartype":"integer"}},"Definition":{"Collection":"guc","Key":"min_parallel_index_scan_size","SourceDatabase":"center","Version":"18","SourceTable":"guc","SourceKey":"min_parallel_index_scan_size","SourceRevision":"wiki-repair-20261023:400b7b8f6e0b740197e3a81d031685b045e188734943f3c5c221c45dbbacbbb7","Facts":{"boot_val":"64","category":"Query Tuning / Planner Cost Constants","context":"user","description":"Sets the minimum amount of index data that must be scanned in order for a parallel scan to be considered. Note that a parallel index scan typically won't touch the entire index; it is the number of pages which the planner believes will actually be touched by the scan which is relevant. This parameter is also used to decide whether a particular index can participate in a parallel vacuum. See VACUUM. If this value is specified without units, it is taken as blocks, that is BLCKSZ bytes, typically 8kB. The default is 512 kilobytes (512kB).","description_zh":"设置考虑使用并行扫描时必须扫描的最小索引数据量。注意，并行索引扫描通常不会访问整个索引；这里考虑的是规划器认为扫描实际会访问的页面数量。这个参数还用于决定特定的索引是否参与并行 vacuum。参见 VACUUM。如果指定值时没有单位，则以块为单位，即 BLCKSZ 字节，通常为 8kB。默认值是 512 千字节（512kB）。","description_zh_html":"\u003cp\u003e\n        设置考虑使用并行扫描时必须扫描的最小索引数据量。注意，并行索引扫描通常不会访问整个索引；这里考虑的是规划器认为扫描实际会访问的页面数量。这个参数还用于决定特定的索引是否参与并行 vacuum。参见 \u003ca class=\"xref\" href=\"/zh/docs/18/sql-vacuum.html\" title=\"VACUUM\"\u003e\u003cspan class=\"refentrytitle\"\u003eVACUUM\u003c/span\u003e\u003c/a\u003e。如果指定值时没有单位，则以块为单位，即 \u003ccode class=\"symbol\"\u003eBLCKSZ\u003c/code\u003e 字节，通常为 8kB。默认值是 512 千字节（\u003ccode class=\"literal\"\u003e512kB\u003c/code\u003e）。\n       \u003c/p\u003e","doc":{"anchor":"GUC-MIN-PARALLEL-INDEX-SCAN-SIZE","file":"runtime-config-query.html","lang":"en","sha256":"33456ca7ef52bf28e93e34b932a411db7a1b95800179add2cf867dc6ec9144bc","slug":"18"},"documented":true,"enumvals":null,"extra_desc":"If the planner estimates that it will read a number of index pages too small to reach this limit, a parallel scan will not be considered.","lang":"en","max_val":"715827882","metadata_version":"18","min_val":"0","name":"min_parallel_index_scan_size","short_desc":"Sets the minimum amount of index data for a parallel scan.","source":"pg-settings-source-snapshot","translation_provenance":{"inputs":[{"kind":"current-pgdoc-translation","path":"/Users/vonng/pgsty/pgdoc/zh/18/html/runtime-config-query.html","sha256":"38b0ec7d6c52647c7cdf6401bda43777b62b324f1821fef3ee0f0f0ddb388513"}],"kind":"same-version-pgdoc","locale":"zh-Hans","source_revision":"b1b500221dbe5437cfca004d6b04d3f6e422765d","version":"18"},"unit":"8kB","vartype":"integer","zh_from":"same-version-pgdoc"},"ManualEvidence":{"doc":{"anchor":"GUC-MIN-PARALLEL-INDEX-SCAN-SIZE","file":"runtime-config-query.html","lang":"en","sha256":"33456ca7ef52bf28e93e34b932a411db7a1b95800179add2cf867dc6ec9144bc","slug":"18"}},"MeasuredEvidence":{"metadata_version":"18"}},"Text":{"Collection":"guc","Key":"min_parallel_index_scan_size","SourceDatabase":"center","Version":"18","Locale":"en","Title":"min_parallel_index_scan_size","Summary":"Sets the minimum amount of index data that must be scanned in order for a parallel scan to be considered. Note that a parallel index scan typically won't touch the entire index; it is the number of pages which the planner believes will actually be touched by the scan which is relevant. This parameter is also used to decide whether a particular index can participate in a parallel vacuum. See VACUUM. If this value is specified without units, it is taken as blocks, that is BLCKSZ bytes, typically 8kB. The default is 512 kilobytes (512kB).","BodyHTML":"\u003cp\u003eSets the minimum amount of index data that must be scanned in order for a parallel scan to be considered. Note that a parallel index scan typically won\u0026#39;t touch the entire index; it is the number of pages which the planner believes will actually be touched by the scan which is relevant. This parameter is also used to decide whether a particular index can participate in a parallel vacuum. See VACUUM. If this value is specified without units, it is taken as blocks, that is BLCKSZ bytes, typically 8kB. The default is 512 kilobytes (512kB).\u003c/p\u003e","SourceRevision":"wiki-repair-20261023:400b7b8f6e0b740197e3a81d031685b045e188734943f3c5c221c45dbbacbbb7","ContentHash":"b87397e7e223a98c62103ad92288431349b26b91822d907eed0b108fb2f33bbf","Payload":{"description":"Sets the minimum amount of index data that must be scanned in order for a parallel scan to be considered. Note that a parallel index scan typically won't touch the entire index; it is the number of pages which the planner believes will actually be touched by the scan which is relevant. This parameter is also used to decide whether a particular index can participate in a parallel vacuum. See VACUUM. If this value is specified without units, it is taken as blocks, that is BLCKSZ bytes, typically 8kB. The default is 512 kilobytes (512kB)."}},"RequestedLocale":"en","Fallback":false,"Versions":["10","11","12","13","14","15","16","17","18","19","20"],"Locales":["en","zh-Hans"],"Signatures":null,"Spellings":null,"SQLState":null,"Evidence":null}
