MyISAM vs InnoDB

1

MyISAM vs InnoDB

Podczas pierwszych etapów pisania aplikacji opartej o MySQL możemy zmierzyć się z dylematem: jaki mechanizm składowania danych użyć dla poszczególnych tabel? Postaram się w poniższym wpisie przybliżyć i porównać dwa, z powszechnie stosowanych – MyISAM oraz InnoDB.

MyISAM

MyISAM jest mechanizmem składowania danych, zaprojektowany z myślą o pobieraniu i dodawaniu danych. Dzięki temu, że każda krotka wskazuje na rekord w pliku i wskaźnik do niej jest przesuwany względem jego początku, wprowadzanie nowych danych jest bardzo wydajne (nowy rekord jest dodawany na sam koniec pliku).

Uaktualnianie danych, jak i usuwanie, jest dużo bardziej problematyczne z natury mechanizmu, dzięki któremu odczyt jest tak wydajny tj. podczas usuwania krotki wszystkie wskaźniki „za” danym rekordem muszą zostać zaktualizowane. Tak samo podczas aktualizacji rekordu – gdyż jego efektem przeważnie jest zmiana wielkości.

InnoDB

Mechanizm składowania danych jakim jest InnoDB jest dużo bardziej skomplikowany i mógłby być materiałem na kolejny wpis – dlatego, też przedstawię tylko jego rewolucyjne względem MyISAM właściwości.

Pierwszym, bez wątpienia bardzo istotnym usprawnieniem, jest możliwość stosowania kluczy obcych w tabelach, zapewniających integralność między tabelami, co w połączniu z utworzeniem indeksu dla danego klucza usprawnia wydajność tabeli.

Drugim rewolucyjnym usprawnieniem względem MyISAM jest możliwość korzystania z transakcji – umożliwia to wydzielenie całości ze zbioru operacji na bazie danych, dzięki czemu, w razie niepowodzenia którejkolwiek z danych operacji, mamy możliwość odwrócenia zmian.

MyISAM vs InnoDB

Poniżej załączam zestawienie cech wyżej przedstawionych silników:

1

Podsumowanie

Przy podejmowaniu decyzji podczas zakładania tabeli warto dokładnie przeanalizować zadania, jakie nasza tabela ma spełniać, dzięki temu, być może w przyszłości zaoszczędzimy trochę czasu na optymalizacji (a raczej na jej braku).

Autorem tekstu jest Michał Gaj.

Zobacz również artykuły o podobnej tematyce

Spółka i-systems inwestuje w technologię blockchain
gamerhash

Milion złotych zainwestowała spółka i-systems w aplikację GamerHash. To niezwykle prosta w użytkowaniu aplikacja pozwalająca zamieniać niewykorzystywaną moc obliczeniową komputerów...

Jak Polacy kupują w sieci?
blik+globus

Każdego roku w czerwcu, wszyscy zainteresowani sprzedażą w sieci oczekują nowego raportu “E-commerce w Polsce”, który publikowany jest przez międzynarodową...

Podsumowanie Q2 2018 w i-systems
clutch2018

Nadchodzące wakacje wcale nie oznaczają wolnych obrotów w e-commerce. Wręcz przeciwnie - to najlepszy czas na przygotowanie i wdrożenie nowych...

Zobacz więcej wpisów