Does the MySQL primary key affect the efficiency of a SELECT query?
All things InooDB, the PRIMARY KEY has a major role. As ypercube mentioned towards end of answer, InnoDB uses a clustered key structure, and the key used for clustering is the PRIMARY KEY.

It is very important to have as small footprint for PRIMARY KEY as possible: the depth of the index is the minimum payment you have to pay so as to get to a leaf node. The depth of an InnoDB PRIMARY KEY is the starting payment for any index search.

My general advice is to use AUTO_INCREMENT primary keys for InnoDB. Here are three blog posts of mine which support this:


Reasons to use AUTO_INCREMENT columns on InnoDB
Simple guideline for choosing appropriate InnoDB PRIMARY KEYs
Reducing locks by narrowing primary key