Het belangrijkste verschil is dat InnoDB transacties ondersteunt, terwijl MyISAM dat niet doet.
Er zijn tal van andere verschillen, maar de meest voorkomende die ik ken zijn:
- MijnISAM wordt doorgaans als sneller beschouwd bij het zoeken, maar recente InnoDB-verbeteringen verwijderen dit verschil en verbeteren de hoge gelijktijdigheidsprestaties van de werkbelasting
- InnoDB ondersteunt transacties terwijl MyISAM dat niet doet
- InnoDB ondersteunt referentiële integriteit terwijl MyISAM dat niet doet
- InnoDB behandelt indexen een beetje anders, waarbij de primaire sleutel wordt opgeslagen als onderdeel van elke index (waardoor indexen meer ruimte op de schijf in beslag nemen, maar ook een dekkende index waarschijnlijker maakt)
- MyISAM doet vergrendeling op tafelniveau, terwijl InnoDB vergrendeling op rijniveau kan doen
- Verschillende instellingen voor geheugen/buffer/index worden gebruikt in de MySQL-configuratiebestanden
- Van InnoDB wordt doorgaans gezegd dat het een beter crashherstel heeft
- Zoals vermeld in een ander antwoord, worden de gegevens anders op schijf opgeslagen. Ik geloof dat InnoDB op dit gebied configureerbaar is en indien nodig één bestand per tabel enz. kan hebben
Ik weet zeker dat een Google-zoekopdracht of de MySQL-site tal van andere verschillen in meer detail naar voren zal brengen.