MySQL: MyISAM czy InnoDB?

W bazie danych MySQL możesz wybierać pomiędzy kilkoma potężnymi silnikami, które będą zasilać Twoje tabele. W tym artykule pokażemy różnicę pomiędzy MyISAM i InnoDB. Na kursie MySQL ludzie często pytają mnie, czy jest lepszy, więc proszę.

MójISAM

MyISAM to podstawowy typ tabeli. Wyszukiwanie i wstawianie jest szybsze niż InnoDB. Jest lepszy w indeksowaniu, a także obsługuje indeksy tekstowe i blobowe. Umożliwia wyszukiwanie pełnotekstowe. Można go przenosić pomiędzy różnymi systemami operacyjnymi. Ma maksymalnie 64 klawisze.

Niestety nie obsługuje transakcji i kluczy obcych. System operacyjny ustala ograniczenia rozmiaru tabeli.

Dla każdej tabeli ten silnik tworzy trzy pliki: frm (plik formatu), myd (dane) i myi (informacje o kluczu i zawartości).

InnoDB

InnoDB jest dostępny od wersji MySQL 4.0. Jest to drugi najczęściej używany typ tabeli. Obsługuje transakcje. Użytkownicy techniki blokowania danych na poziomie wiersza. Jest odpowiedni dla środowisk, w których występuje duży odsetek zapytań zmieniających dane. Obsługuje także klucze obce.

Niestety, w tej wyszukiwarce nie można wykonywać wyszukiwania pełnotekstowego. Zajmuje więcej miejsca niż MyISAM.

Co polecam?

Osobiście wolę MyISAM, ze względu na prostsze zarządzanie poszczególnymi bazami danych na poziomie systemu plików.

Marián Knězek