W tej samej bazie danych mogą znajdować się zarówno tabele MyISAM, jak i InnoDB. Jeśli jednak masz bardzo duże tabele, zauważysz, że MyISAM powoduje problemy z blokowaniem tabel. Ostatecznie blokuje całą tabelę dla pojedynczej transakcji, co jest bardzo złe, jeśli masz wielu użytkowników korzystających z Twojej witryny. Np. jeśli masz użytkownika szukającego czegoś w Twojej witrynie, a wykonanie zapytania zajmuje kilka minut, żaden inny użytkownik nie może w tym czasie korzystać z Twojej witryny, ponieważ cała tabela jest zablokowana.
Z drugiej strony InnoDB używa blokowania na poziomie wiersza, co oznacza, że ten wiersz jest jedynym wierszem zablokowanym z tabeli podczas transakcji. InnoDB może działać wolniej podczas wyszukiwania, ponieważ nie oferuje wyszukiwania pełnotekstowego, takiego jak MyISAM, ale nie stanowi to dużego problemu w porównaniu z blokowaniem MyISAM na poziomie tabeli. Jeśli używasz InnoDB, jak wiele dużych witryn, możesz użyć wyszukiwarki po stronie serwera, takiej jak Sphinx
do wyszukiwania pełnotekstowego. Możesz nawet użyć tabeli MyISAM do wyszukiwania, takiego jak f00
zasugerował. Osobiście poleciłem InnoDB głównie ze względu na funkcję blokowania na poziomie wiersza, ale także dlatego, że możesz zaimplementować wyszukiwanie pełnotekstowe na wiele innych sposobów.
Zasadniczo, jeśli masz aplikację forum dyskusyjną z dużą ilością zaznaczeń, wstawek i aktualizacji, InnoDB jest prawdopodobnie ogólnie właściwym wyborem. Ale jeśli nie budujesz czegoś takiego (lub niczego innego z zarejestrowanymi użytkownikami) i nie pracujesz głównie ze statyczną zawartością (lub więcej odczytów niż zapisów), wtedy możesz użyć MyISAM.