Hlavním rozdílem je, že InnoDB podporuje transakce, zatímco MyISAM ne.
Existuje mnoho dalších rozdílů, ale ty běžné, kterých jsem si vědom, jsou:
- MyISAM byl obvykle považován za rychlejší při vyhledávání, ale nedávná vylepšení InnoDB tento rozdíl odstraňují a zlepšují výkon při vysokém souběžném pracovním zatížení
- InnoDB podporuje transakce, zatímco MyISAM ne
- InnoDB podporuje referenční integritu, zatímco MyISAM ne
- InnoDB zachází s indexy trochu jinak, primární klíč ukládá jako součást každého indexu (indexy tak zabírají více místa na disku, ale také zvyšuje pravděpodobnost krycího indexu)
- MyISAM zamyká na úrovni tabulky, zatímco InnoDB umí zamykat na úrovni řádků
- V konfiguračních souborech MySQL se používají různá nastavení paměti/vyrovnávací paměti/indexu
- O InnoDB se obvykle říká, že má lepší zotavení z havárie
- Jak je uvedeno v jiné odpovědi, data se na disku ukládají jinak. Věřím, že InnoDB je v této oblasti konfigurovatelný a může mít jeden soubor na tabulku atd. v případě potřeby
Jsem si jistý, že vyhledávání Google nebo web MySQL podrobněji odhalí četné další rozdíly.