The slides of “Efficient Use of Indexes in MySQL” talk we delivered on SFMySQL Meetup.
This is an introductory talk for developers on MySQL indexes. In my opinion it’s quite important to understand how InnoDB organizes data. If you know how MySQL accesses data it’s easier to write optimal queries.
When working with queries I imagine secondary indexes as a table with records sorted by secondary key fields. This is a powerful concept that helps to understand MySQL logic. It’s also easy to understand complex optimizations like loose index scan.
For example, for index (last_name, rank) the secondary index table looks like: