Jeder Index hat eine eigene Kardinalität. Ein Index der zugleich Primärschlüssel ist hat i.d.R. eine Kardinalität von n (= Anzahl Datensätze in Tabelle).
Wenn Du einen Index auf Nachname legst, dann heißt das, dass Abfragen nach dem Nachnamen schneller abgearbeitet werden können, weil nicht mehr die kompletten Adressdaten durchwühlt werden müssen, sondern nur noch dieser Index mit allen Nachnamen. Wenn Du dann auch noch alle Kunden mit Namen "Meier" haben willst, dann liefert Dir der Index sofort alle 15 Meiers aus Deiner Datenbank zurück, auf die Du dann sehr schnell zugreifen kannst.
Bei einer Suche nach Vorname und Nachname kommt es bei dieser Konstellation dagegen auf die Reihenfolge an. Wenn Du da nach Vorname zuerst suchst, dann durchwühlt er aufgrund des fehlenden Index "Vorname" die komplette Tabelle. Und würde dann unter Umständen erst den Index für Nachnamen verwenden (kann auch sein, dass gar keiner zum Einsatz kommt). Umgedreht würde er zunächst die Nachnamen einschränken und dann innerhalb der gefundenen Tupel den Vornamen in der Tabelle überprüfen.
Hast Du dagegen einen Index Nachname, Vorname würde die Suche nach einer Nachname + Vorname Kombination wesentlich schneller gehen. Suchst Du nach Vorname + Nachname, würde ein sogenannter TableScan durchgeführt, d.h. direkt in der Tabelle geschaut.
Auch bei der Sortierung hilft ein Index, weil ein Index sortiert gespeichert ist, allerdings auch nur solange, wie die Reihenfolge der Sortierkriterien mit der Reihenfolge in einem der Indizes übereinstimmt.
Man kann und sollte bei großen Tabellen mehrere Indizes anlegen, um für verschiedene Anwendungsfälle für schnellen Datenzugriff zu sorgen. Allerdings muß man dazu genau wissen, was die Anwendung braucht und wie sie die Daten abfragt. Andererseits muss der Anwendungsentwickler die vorhandenen Indizes möglichst optimal ausnutzen, um das letzte aus der Datenbank herauszuholen und die DB nicht zum Flaschenhals werden zu lassen.