Sets the minimum amount of index data that must be scanned in order for a parallel scan to be considered.
At a glance
| Property | Value |
|---|---|
| Parameter | min_parallel_index_scan_size |
| Category | Query Planning |
| Default | 512 |
| Value type | integer |
| Change scope | Per-session (SET) |
| Available in | PostgreSQL 12, 13, 14, 15, 16, 17, 18, 19 (added in 12) |
What it does
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 quoted from the official PostgreSQL documentation.)
How to apply a change
Can be set per session with SET, per role/database with ALTER ROLE/DATABASE ... SET, or globally in postgresql.conf.
Inspect the current value and source with SHOW min_parallel_index_scan_size; or SELECT name, setting, unit, context, source FROM pg_settings WHERE name = 'min_parallel_index_scan_size';.
Tuning guidance
Lower it to let parallel index scans kick in on smaller indexes; the default keeps parallelism for large index scans where coordination pays off.