Loose index scan
An optimization for DISTINCT and GROUP BY: instead of reading all index entries and eliminating duplicates, the database jumps straight to the next distinct value in the index. Drastically fewer reads when there are many duplicates per group.
Example: SELECT DISTINCT customer_id FROM orders with an index on customer_id → instead of scanning millions of rows it jumps to each new customer_id (maybe thousands). Also effective for SELECT customer_id, MAX(created_at) GROUP BY customer_id. MySQL has had it for a long time ("Using index for group-by"). PostgreSQL lacked it for years → a common trick was a recursive CTE emulating skip; version 18 added true skip scan. The win is biggest when the column has low cardinality relative to the table size. Closely related to skip scan.