title: MySQL - Does SELECT * need an index of all table fields?
body: <p>I would like to know if it is necessary to create an index for all fields within a table if one of your queries will use <code>SELECT *</code>.</p>
  
  <p>To explain, if we had a table that 10M records and we did a <code>SELECT *</code> query on it would the query run faster if we have created an index for all fields within the table or does MySQL handle <code>SELECT *</code> in a different way to <code>SELECT first_field, a_field, last_field</code>.</p>
  
  <p>To my understanding, if I had a query that did <code>SELECT first_field, a_field FROM table</code> then it would bring performance benefits if we created an index on <code>first_field, a_field</code> but if we use <code>SELECT *</code> is there even a benefit from creating an index for all fields?</p>