Tuning InnoDB Primary Keys - Percona Database Performance Blog
What is special about InnoDB primary keys?
InnoDB is called an index-organized storage engine. An index-organized storage engine uses the B-Tree of the primary key to stores the data, the table rows. That means a primary key is mandatory with InnoDB. If there is no primary key for a table, InnoDB adds a hidden auto-incremented 6 bytes counter to the table and use that hidden counter as the primary key. There are some issues with the InnoDB hidden primary key. You should always define explicit primary keys on your tables. In summary, you access all InnoDB rows by the primary key values.
An InnoDB secondary index is also a B-Tree. The search key is made of the index columns and the values stored are the primary keys of matchi