mylsam | logo | 2026.

MyISAM storage engine | Zašto je bio standard u MySQL-u i kako ga je potisnuo moderniji InnoDB

MyISAM je jedan od najstarijih i najpoznatijih storage enginea u MySQL bazi podataka. Dugo je bio zadani engine u MySQL-u – sve do verzije 5.5 – prije nego što ga je zamijenio InnoDB. Iako se danas rijetko koristi u modernim aplikacijama, ovaj storage engine je i dalje prisutan u starijim sustavima, arhivama i specifičnim slučajevima, gdje su brzina i jednostavnost važnije od sigurnosti podataka.

| VEZANO: MyISAM vs InnoDB | Koji MySQL storage engine je brži i sigurniji i kada ima smisla koristiti svaki

Ukratko, ovaj storage engine u MySQL-u određuje kako se podaci fizički spremaju, kako se indeksiraju, zaključavaju i oporavljaju. MyISAM je dizajniran u vrijeme kada su baze bile manje, aplikacije jednostavnije, a paralelni rad korisnika znatno rjeđi nego danas.

Kako MyISAM sprema podatke?

MyISAM svaku tablicu dijeli u tri fizičke datoteke:

  • .frm – definicija strukture tablice
  • .MYD – stvarni podaci (MyData)
  • .MYI – indeksi (MyIndex)

Ovakva struktura omogućuje jednostavno kopiranje tablica na razini datoteka, ali istovremeno donosi ozbiljna ograničenja kod stabilnosti i oporavka podataka.

Ključne karakteristike MyISAM-a

Najvažnija osobina MyISAM-a je da ne podržava transakcije. To znači da nema COMMIT i ROLLBACK, niti ACID garancija. Ako dođe do prekida napajanja ili rušenja servera tijekom zapisa, postoji realna mogućnost oštećenja tablice. Druga velika mana je zaključavanje na razini tablice (table-level locking). Kada jedan korisnik upisuje podatke, svi ostali moraju čekati. U sustavima s većim brojem istodobnih upita to postaje ozbiljan usko grlo.

S druge strane, MyISAM ima nekoliko prednosti:

  • vrlo brzo čitanje podataka
  • jednostavna struktura
  • manja potrošnja resursa u usporedbi s InnoDB-om
  • podrška za FULLTEXT indeksiranje (što je nekada bila velika prednost)

Zbog toga je ovaj storage engine bio popularan za read-only sustave, statističke baze, logove i jednostavne portale s minimalnim upisima.

Oporavak i integritet podataka

MyISAM ne podržava referencijalni integritet. Nema stranih ključeva (foreign keys), nema provjere povezanosti između tablica, a konzistentnost podataka ovisi isključivo o aplikaciji. Ako dođe do oštećenja tablice, često je potrebno ručno pokretati alate poput REPAIR TABLE ili myisamchk, što u produkciji može biti rizično i vremenski zahtjevno.

Zašto je InnoDB preuzeo primat?

Razvojem web aplikacija, povećanjem broja korisnika i važnosti sigurnosti podataka, MyISAM je postao zastario. I to zato što InnoDB nudi:

  • transakcije
  • zaključavanje na razini retka
  • bolju otpornost na pad sustava
  • automatski oporavak

Zbog toga je InnoDB danas standardni izbor, dok se MyISAM koristi uglavnom iz povijesnih razloga ili u vrlo specifičnim scenarijima.

Zaključak

MyISAM je važan dio povijesti MySQL-a i dobar primjer kako su se baze podataka razvijale. Iako je danas tehnički inferioran modernim engineima, razumijevanje MyISAM-a pomaže u radu sa starim sustavima i u shvaćanju zašto su transakcije, zaključavanje redaka i integritet podataka postali ključni standardi u suvremenim bazama.

Tagged