No, non è necessario una chiave primaria per far funzionare una tabella in MySQL. Detto questo, una chiave primaria consente a un valore univoco di fare riferimento a una riga in una tabella di un'altra tabella o in qualsiasi codice che utilizza la tabella.
Hai bisogno di una chiave primaria per far funzionare una tabella bene in MySQL però. Gli indici (di cui la chiave primaria è una) consentono a MySQL di cercare in piccoli sottoinsiemi altamente ottimizzati della tabella per elaborare relazioni e ricerche. In generale, tutti i campi che utilizzi in un WHERE
La clausola o l'uso per collegare due tabelle insieme devono essere indicizzati.