Loose Index Scan
Eine Optimierung für DISTINCT und GROUP BY: Statt alle Indexeinträge zu lesen und Duplikate herauszufiltern, springt die Datenbank direkt zum nächsten unterschiedlichen Wert im Index. Bei vielen Duplikaten pro Gruppe drastisch weniger Lesezugriffe.
Beispiel: SELECT DISTINCT customer_id FROM orders mit Index auf customer_id — statt Millionen Zeilen zu durchsuchen, springt die Datenbank zu jeder neuen customer_id, vielleicht ein paar Tausend. Genauso effektiv bei SELECT customer_id, MAX(created_at) GROUP BY customer_id. MySQL beherrscht das seit Langem ("Using index for group-by"). PostgreSQL fehlte es jahrelang — ein gängiger Trick war eine rekursive CTE, die das Überspringen nachbildete; Version 18 brachte einen echten Skip Scan. Der Gewinn ist am größten, wenn die Spalte im Verhältnis zur Tabellengröße eine niedrige Kardinalität hat.