Port Facebook Prefix Index Queries Optimization

Description

https://github.com/facebook/mysql-5.6

commit e8f0052f9b112dc786bf9b957ed5b16a5749f7fd
commit e8f0052f9b112dc786bf9b957ed5b16a5749f7fd
commit 154c579b828a60722a7d9477fc61868c07453d08

Port v5.1 Prefix Index Queries Optimization

Summary:
Feature: Prefix Index Queries Optimization

Optimize prefix index queries to skip cluster index lookup when possible.

Currently InnoDB will always fetch the clustered index (primary key
index) for all prefix columns in an index, even when the value of a
particular record is smaller than the prefix length. This change
optimizes that case to use the record from the secondary index and avoid
the extra lookup.

Also adds two status vars that track how effective this is:

innodb_secondary_index_triggered_cluster_reads:
Times secondary index lookup triggered cluster lookup.

innodb_secondary_index_triggered_cluster_reads_avoided:
Times prefix optimization avoided triggering cluster lookup.

Environment

None

Status

Assignee

Jan Lindström

Reporter

Jan Lindström

Labels

External issue ID

None

External issue ID

None

Fix versions

Priority

Minor
Configure