Covering Index
Ein Index, der alle Spalten enthält, die eine Abfrage braucht, sodass die Datenbank sie komplett aus dem Index beantworten kann, ohne die eigentliche Tabellenzeile nachzuschlagen (ein „Index-only Scan"). Ein großer Performance-Gewinn für lesehungrige Abfragen.
PostgreSQL: CREATE INDEX ON orders (customer_id) INCLUDE (total, status) — customer_id ist durchsuchbar, total/status sind dabei, um Heap-Zugriffe zu vermeiden. SQL Server hat dieselbe INCLUDE-Syntax. Mechanik: Ohne Covering muss jedem Treffer ein Nachschlagen in der Tabelle folgen (ein Heap Fetch) → teure I/O. Mit einem Covering Index „deckt" der Index die Abfrage ab. Kompromiss: ein breiterer Index bedeutet mehr Speicherplatz und langsamere Schreibvorgänge. In Postgres muss außerdem die Visibility Map aktuell sein (Autovacuum), damit ein Index-only Scan ohne Heap-Besuch auskommt. Eine klassische Optimierung für heiße Lesepfade.