La differenza principale è che InnoDB supporta le transazioni mentre MyISAM no.
Ci sono numerose altre differenze, tuttavia quelle comuni di cui sono a conoscenza sono:
- MyISAM è stato generalmente considerato più veloce nella ricerca, ma i recenti miglioramenti di InnoDB stanno rimuovendo questa differenza e migliorando le prestazioni del carico di lavoro ad alta simultaneità
- InnoDB supporta le transazioni mentre MyISAM no
- InnoDB supporta l'integrità referenziale mentre MyISAM no
- InnoDB gestisce gli indici in modo leggermente diverso, memorizzando la chiave primaria come parte di ogni indice (facendo in modo che gli indici occupino più spazio sul disco, ma rendendo anche più probabile un indice di copertura)
- MyISAM esegue il blocco a livello di tabella mentre InnoDB può eseguire il blocco a livello di riga
- Diverse impostazioni di memoria/buffer/indice vengono utilizzate nei file di configurazione di MySQL
- In genere si dice che InnoDB abbia un migliore ripristino in caso di arresto anomalo
- Come accennato in un'altra risposta, i dati vengono archiviati su disco in modo diverso. Credo che InnoDB sia configurabile in quest'area e possa avere un file per tabella ecc. Se necessario
Sono sicuro che una ricerca su Google o sul sito MySQL farà emergere numerose altre differenze in modo più dettagliato.