is this dead simple query too slow?
The statement you are trying to tune ("select firstName from user;") doesn't have a where clause so it will perform a full table scan.  When firstName is indexed, then a scan of the index will occur.  This will be faster on the basis that the amount of data the engine must read and is substantially less than the entire row.

Most applications are interested in smaller sets of data (i.e., what are the users with a first name of Peter) and not all of the stored data values.  This is where tuning really pays off.  A firstName index would be beneficial to find people with a certain firstName but comes at a cost - inserting, updating and deleting row becomes slower.  You do not want to add indexes indiscriminately.