Den största skillnaden är att InnoDB stöder transaktioner medan MyISAM inte gör det.
Det finns många andra skillnader, men den vanliga jag känner till är:
- MyISAM har vanligtvis ansetts vara snabbare vid sökning, men de senaste förbättringarna av InnoDB tar bort denna skillnad och förbättrar prestanda vid hög samtidig arbetsbelastning
- InnoDB stödjer transaktioner medan MyISAM inte gör det
- InnoDB stöder referensintegritet medan MyISAM inte gör det
- InnoDB hanterar index lite annorlunda och lagrar primärnyckeln som en del av varje index (så att index tar upp mer utrymme på disken, men också gör ett täckande index mer troligt)
- MyISAM gör tabellnivålåsning medan InnoDB kan göra radnivålåsning
- Olika inställningar för minne/buffert/index används i MySQL-konfigurationsfilerna
- InnoDB sägs vanligtvis ha bättre kraschåterställning
- Som nämnts i ett annat svar, lagras data på disken annorlunda. Jag tror att InnoDB är konfigurerbart i detta område och kan ha en fil per tabell etc. om det behövs
Jag är säker på att en sökning på Google eller MySQL-webbplatsen kommer att ta upp många andra skillnader mer detaljerat.