La struttura dell'indice primary così come quella degli altri indici (anche con MyIsam) è B-Tree. Questa struttura nel caso di un indice primary dovrebbe consentire di utilizzare in maniera efficente le query che coinvolgono le colonne della primary key e in particolare se la prima colonna del where corrisponde alla prima delle colonne definite nell'indice. Quindi è inutile oltre che poco efficente in termini di performance aggiungere un nuovo indice.
Anche la forzatura nell'utilizzo di un indice va fatta come eccezione alla regola o solo per fare dei test visto che l'engine è quello che ha quasi sempre ragione e se non usa un indice è perchè sulla base delle statistiche ritiene che sia meglio un full scan.
In generale poi si può anche aggiungere che creare una chiave primaria composita fatta cioè dall'unione di più campi è una scelta che poi si riflette negativamente sulla pesantezza degli altri indici e sull'efficenza delle query di update. Questa scelta si potrebbe fare ad esempio quando la tabella viene utilizzata in gran parte per delle letture che utilizzano i campi della chiave primaria come filtro. Solitamente se si può scegliere si dovrebbe preferire una chiave artificiale gestita dall'engine ed eventualmente aggiungere indici unique se necessario.