SQL might decide to use an index only IF all of columns from the table that you specify (in the select list, joining conditions, where clause) are in the index.

If you specify "SELECT *", then it is unlikely that such an index would be useful.

As a general rule, you should ask for the minimum number of rows and columns that will satisfy your requirements. This means that the potential work that SQL needs to do is kept to a minimum, the work required to move the data from SQL to your application is kept to a minimum and your application only needs to handle the minimum amount of data. Doing this gives you a better chance of writing an application that will scale nicely.