Zawsze używaj domyślnie InnoDB.
W MySQL 5.1 później powinieneś używać InnoDB. W MySQL 5.1 powinieneś włączyć wtyczkę InnoDB . W MySQL 5.5 wtyczka InnoDB jest domyślnie włączona, więc po prostu jej używaj.
Wiele lat temu doradzano, że MyISAM jest szybszy w wielu scenariuszach. Ale to nie jest już prawdą, jeśli używasz aktualnej wersji MySQL.
Mogą istnieć pewne egzotyczne przypadki, w których MyISAM działa nieznacznie lepiej w przypadku niektórych obciążeń (np. skanowanie tabel lub praca z tylko INSERT na dużą skalę), ale domyślnym wyborem powinna być InnoDB, chyba że możesz udowodnić masz przypadek, w którym MyISAM radzi sobie lepiej.
Zalety InnoDB oprócz obsługi transakcji i kluczy obcych, o których zwykle wspomina się, to:
- InnoDB jest bardziej odporny na uszkodzenia tabeli niż MyISAM.
- Blokowanie na poziomie wiersza. W MyISAM czytelnicy blokują pisarzy i odwrotnie.
- Obsługa dużej puli buforów dla danych i indeksów. Bufor klucza MyISAM jest przeznaczony tylko dla indeksów.
- MyISAM jest w stagnacji; cały przyszły rozwój będzie w InnoDB.
Zobacz także moją odpowiedź na MyISAM kontra InnoDB