NEW
An index that contains all columns required by a query, avoiding table lookup.
DESCRIPTION
A covering index satisfies a query entirely from the index, eliminating key lookups to the base table. In SQL Server, included columns can extend nonclustered indexes to cover queries. MySQL and InnoDB use covering indexes for efficient retrieval, while PostgreSQL achieves similar benefits via index-only scans when visibility maps permit. Covering indexes reduce I/O and latency but increase write overhead and storage. Careful selection balances read performance with maintenance costs.
ALTERNATIVE DEFINITIONS
Microsoft Learn
An index that includes all columns referenced in a query is called a covering index because the index covers the query.
Defines covering indexes via included columns for query coverage.
MySQL Reference Manual
A covering index is an index that contains all the columns needed to satisfy a particular query.
MySQL glossary definition emphasizing column completeness.
PostgreSQL Documentation
An index-only scan fetches data from the index without accessing the table, if the index contains all the data needed by the query.
Describes Postgres’ equivalent behavior via index-only scans.
RELATED TERMS
Index-Only Scan Nonclustered Index Included Columns Query Optimization Query Execution Plan Composite Index Clustered Index Seek Scan Materialized View
COMPETING TERMS
Table Scan
RELATIONS
- Broader: Index
KNOWLEDGE AREAS
Data Storage & Operations Data Engineering Data Warehousing & BI
TARGET AUDIENCE
Data Engineer Data Architect Software Developer Analytics Engineer
EXTERNAL SOURCES
- Wikipedia - Database index
- Microsoft Learn - SQL Server covering index guidance
- MySQL - Definition of covering index in MySQL
- PostgreSQL - Index-only scans concept and constraints
TOP QUESTIONS
Why use a Covering Index?
It avoids table lookups, reducing I/O and latency. This often yields substantial performance gains for read-heavy workloads.
Category: Relevancy
What is the trade-off of a Covering Index?
More storage and slower writes. Index maintenance costs rise with frequent updates or large included columns.
Category: Risk
How do included columns create a Covering Index?
In SQL Server, nonkey included columns let an index contain all needed query columns, covering the query.
Category: Application
Does PostgreSQL support Covering Indexes?
PostgreSQL achieves similar benefits via index-only scans when the visibility map ensures tuples are up-to-date.
Category: Alternatives
What queries benefit most from Covering Indexes?
Highly selective queries that project a small set of columns and execute frequently benefit significantly.
Category: Example
What is a common mistake with Covering Index design?
Including too many large columns, which bloats index size and degrades write performance.
Category: Mistakes
How do you identify opportunities for Covering Indexes?
Review execution plans for key lookups and frequent scans; evaluate column usage and filter predicates.
Category: Management
Are Covering Indexes helpful for OLAP workloads?
They can help, but columnar storage, materialized views, and aggregations may be more effective in warehouses.
Category: Opinion
How does SARGability affect Covering Index utility?
SARGable predicates enable seeks in the index; non-SARGable predicates may still scan even with coverage.
Category: Validation