Základ je, že myisam sa nevie spamätať z častého deletovania-insertovania-deletovania... Časom sa pos...e tabulka, pretože je príliš fragmentovaná. Stávalo sa mi to skoro každý deň a do cronu som musel dať optimize table raz denne. Myslím, že hlavne (alebo iba?) keď ide o dynamickú šírku riadku.
Myisam vie triggre, innodb zase transakcie.
Innodb má zas tú nevýhodu, že keď sa ti raz zväčší ten súbor (ibdata1), v ktorom sú všetky dáta, už ho len tak nezmenšíš. Takže keď nárazovo raz využiješ 200 GB miesta v InnoDB, už sa toho nezbavíš iba tak a tých 200 GB ti tam bude oxidovať nafurt.
Jednej firme, pre ktorú robím, sa stalo, že mali tabulky v innodb a furt im to padalo. Asi nejak blbo nastavený hosting alebo čo. Tak museli prejsť na myisam a problémy prestali.
Predpokladám ale podľa tvojich doterajších postov na pcforum.sk, že zas až tak veľmi nemusíš myslieť na tieto veci. Reálne to nevyužiješ vždy. Pri malých projektoch ti to môže byť jedno, aj keby si sqlite používal.
// ešte by sa ti zišiel spôsob, ako zistiť, či máš fragmentované tabuľky
Kód:
SELECT * FROM `information_schema`.`TABLES` WHERE `DATA_FREE`>0
Ak ti vráti vysoké čísla, zle je. Ideálne by ti nemalo vrátiť žiadne riadky.