MySQL Storage Engine: MyISAM vs InnoDB
Multa lume probabil se intreaba ce Storage Engine Architecture sa aleaga pentru MySQL si fiecare are motivele lui pentru care alege InnoDB sau MyISAM.
La o cautare dupa cele 2 engine-uri am fi tentati sa spunem ca InnoDB este alegerea mai buna pentru o serie de avantaje cum ar fi:
- blocheaza tabela la nivel de rand nu toata tabela cand face operatii in ea - ceea ce inseamna ca putem face mai multe operatii concomitent daca sunt afectate randuri diferite.
- accepta constrangeri pt foreign key
- accepta Multi-statement transactions, ROLLBACK, HASH lookups
Lucrurile nu stau chiar atat de simplu percum pare, lucru ce face alegerea storage engine-ului o treaba dificila. In primul rand trebuie sa stim ce se intampla cand crapa tabelele (lucru ce se intampla destul de des in MySQL pentru tabele mari, mai ales pe platforma win). Well, tabelele InnoDB nu pot fi reparate cu mysqlcheck sau cu repair table, ci sunt reparate automat. Nasol este ca lucrul asta nu se intampla chiar tot timpul => ca tabela crapa mai rar insa poate fi iremediabil.
Alt avantaj MyISAM este ca suporta Merge (union views) si Compress read-only storage, iar cel mai important este (dupa parerea mea) ca atat spatiul pe disc cat si utilizarea memoriei sunt mult mai mici pentru tabelele MyISAM.
Prin urmare, alegerea motorului de stocare e strans legata de tipul si marimea aplicatiei, resursele serverului, marimea si numarul de accesari a bazei de date. N-am gasit un test de viteza, daca stie careva sa lase un comentariu.
Multa lume probabil se intreaba ce Storage Engine Architecture sa aleaga pentru MySQL si fiecare are motivele lui pentru care alege InnoDB sau MyISAM.
La o cautare dupa cele 2 engine-uri am fi tentati sa spunem ca InnoDB este alegerea mai buna pentru o serie de avantaje cum ar fi:
- blocheaza tabela la nivel de rand nu toata tabela cand face operatii in ea - ceea ce inseamna ca putem face mai multe operatii concomitent daca sunt afectate randuri diferite.
- accepta constrangeri pt foreign key
- accepta Multi-statement transactions, ROLLBACK, HASH lookups
Lucrurile nu stau chiar atat de simplu percum pare, lucru ce face alegerea storage engine-ului o treaba dificila. In primul rand trebuie sa stim ce se intampla cand crapa tabelele (lucru ce se intampla destul de des in MySQL pentru tabele mari, mai ales pe platforma win). Well, tabelele InnoDB nu pot fi reparate cu mysqlcheck sau cu repair table, ci sunt reparate automat. Nasol este ca lucrul asta nu se intampla chiar tot timpul => ca tabela crapa mai rar insa poate fi iremediabil.
Alt avantaj MyISAM este ca suporta Merge (union views) si Compress read-only storage, iar cel mai important este (dupa parerea mea) ca atat spatiul pe disc cat si utilizarea memoriei sunt mult mai mici pentru tabelele MyISAM.
Prin urmare, alegerea motorului de stocare e strans legata de tipul si marimea aplicatiei, resursele serverului, marimea si numarul de accesari a bazei de date. N-am gasit un test de viteza, daca stie careva sa lase un comentariu.