Two of the most impactful performance optimizations in modern MySQL database engineering are Covering Indexes and Index Condition Pushdown (ICP). Both drastically slash disk I/O and CPU overhead by resolving queries directly inside the storage engine.
1. Covering Indexes: Zero Double Lookups
A Covering Index is not a special type of index; it is an indexing design pattern where an index contains all the columns requested by a query (SELECT, WHERE, ORDER BY, GROUP BY).
When an index is covering:
1
InnoDB satisfies the entire query solely by reading the secondary index B+Tree.
2
It never touches the clustered index or physical table rows!
3
In EXPLAIN output, the Extra column displays: Using index.
1-- Problem Query:
2SELECT customer_id, order_date, total_amount
3FROM orders
4WHEREstatus='SHIPPED';
5
6-- Standard Index on (status):
7-- Requires fetching PK, then doing a double lookup to read order_date and total_amount.
Now, MySQL reads everything directly from idx_orders_covering, completely bypassing table page lookups!
2. Index Condition Pushdown (ICP)
Prior to MySQL 5.6, when a query had multiple conditions on a composite index where some conditions could not be resolved by tree traversal (e.g., due to a range or wildcard), the storage engine fetched the full row and sent it up to the MySQL Server layer for filtering.
Index Condition Pushdown (ICP) pushes condition evaluation down into the storage engine:
The storage engine evaluates index columns against query predicates before reading the full table row.
If the row does not qualify, InnoDB discards it immediately without reading the clustered index!
In EXPLAIN output, the Extra column displays: Using index condition.
1-- Table has index on (zipcode, last_name, first_name)
2SELECT*FROM people
3WHERE zipcode ='90210'
4AND last_name LIKE'%son'
5AND address LIKE'%Main%';
With ICP:
1
InnoDB uses zipcode = '90210' to navigate the index tree.
2
InnoDB inspects last_name LIKE '%son' directly inside the index leaf before fetching the table row!
3
Only rows matching the pattern cause a clustered index lookup for address.