Voglio capire bene la funzione degli indici, perchè sinceramente non è che sto capendo tanto, o meglio voglio levarmi dei dubbi

Sono 2 giorni che Googlo, e ho visto che esistono 4 tipi di indici
PRIMARY
INDEX
UNIQUE
FULLTEXT

Ok e fin qua ci sono, a seconda di come voglio i valori Mysql fa dei controlli.

Quello che non capisco è più che altro come agiscono sulle select. Cioè se io faccio una chiave primaria esempio come agisce? cioè non fa più il controllo su tutti i valori? ma tiene che ne so un ordine suo?
Esempio
Devo ricercare nome in un tabella... lui se li sistema in ordine alfabetico e se vede che la query ricerca un nome che inizia per A lui fa la ricerca solo su quelli?
giusto per fare un esempio

Ora non chiedo una spiegazione precisa delle operazioni interne di Mysql, ma riuscire almeno a capire come funzionano a livello di programmazione, perchè non ho ben capito come usarle.

Se ho capito bene, le devo fare per le operazioni WHERE e/o LIKE che uso di più no?

Altra cosa, mi devo ancora informare in merito perchè ero preso con la ricerca degli indici... ma le chiavi esterne fanno parte degli indici? se è anche quelle vanno definite? perchè di solito io attraverso php faccio delle ricerche concatenate con la clausola WHERE, però a sto punto ho paura di "sbagliare"