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

Podsumowanie Q4 2017 w i-systems
q4

W i-systems dużo energii po świątecznym odpoczynku. Co jednak działo się w firmie w ostatnich trzech miesiącach 2017 roku? Zapraszamy...

Start e-commercowych bolidów już w marcu
ecommerce

Według różnych źródeł, wartość polskiego e-commerce w 2017 roku szacowana była na 36-40 mld złotych. Od kilku lat udział sprzedaży...

System sprzedaży dla Termy Bania dzięki CI gotowy w miesiąc
para+baner

Zlokalizowany w Białce Tatrzańskiej kompleks Terma Bania jest doskonałym miejscem na wypoczynek i spędzenie czasu z rodziną. Firma od niedawna...

Zobacz więcej wpisów