Un campo PRIMARY aiuta nella ricerca e puo' essere auto increment come hai detto tu pero' possono esserci piu' record con lo stesso valore.
Un campo unique invece forza il campo ad essere unico, mysql controlla che non ci sia un altro record con lo stesso valore e se c'e' non esegue la query.
Dopo WHERE ci puo essere qualsiasi campo presente nella tabella e non solo gli indici