Oui, MySQL utilise votre index pour trier les informations lorsque l'ordre se fait par colonne triée.
De plus, si vous avez des index dans toutes les colonnes que vous avez ajoutées au SELECT clause, MySQL ne chargera pas les données de la table elle-même, mais de l'index (ce qui est plus rapide).
La différence entre les index combinés et séparés est que MySQL ne peut pas en utiliser plus d'un un index par requête, donc, si votre requête filtre par plusieurs colonnes et que vous souhaitez qu'elle soit correctement indexée, vous devrez créer un index combiné de toutes les colonnes.
Mais avant d'ajouter de nombreux index à vos tables, rappelez-vous que chaque index ralentit les opérations d'insertion/mise à jour/suppression.
Je recommanderais également fortement le MySQL haute performance livre d'O'Reilly qui couvrira en profondeur tous ces problèmes et beaucoup d'autres conseils dont vous avez besoin savoir pour vraiment pouvoir utiliser MySQL jusqu'à la limite.