Zadejte hledaný výraz...

MyISAM vs. InnoDB

Ryuji
verified
rating uzivatele
(1 hodnocení)
21. 1. 2013 12:37:20
Zdravím všechny,
může mi někdo - nejlépe z hostingů - říct, jak technicky náročné jsou databázové tabulky s enginem InnoDB vs. MyISAM a proč?
Řeším nějaké komplikace na svém VMS a poskytovatel mi doporučil u PrestaShopu použít spíše MyISAM (moje e-shopy jsou vcelku malinké = žádné tisíce přístupů denně). PrestaShop ale při instalaci nabízí InnoDB jako výchozí. Pochopil jsem, že InnoDB je odolnější vůči poškození dat při nedokončeném skriptu, ale dál? Je MyISAM použitelný v pohodě i při vyšším zatížení? Je možné typ tabulek změnit v případě potřeby?
A poslední dotaz. Je u VPSek běžné, že PHP server a DB server je na jednom stroji?
21. 1. 2013 12:37:20
https://webtrh.cz/diskuse/myisam-vs-innodb#reply855751
Z hlediska bezpečnosti dat je doporučována databáze InnoDB. Nevýhodou InnoDB je delší zápis dat, co se projeví např. při pravidelném importu dat od dodavatele. V běžném provozu je rozdíl v rychlosti InnoDB vs. MyISAM téměř nepostřehnutelný. Výhodou InnoDB jsou transakce, které kromě jiného předcházejí kolizím při paralelním zápisu dat od dvou klientů a jsou odolnější v případě pádu serveru.
Z mé zkušenosti mohu doporučit fyzicky nastavit tabulky InnoDB do samostatných souborů použitím direktivy innodb_file_per_table (http://dev.mysql.com/doc/refman/5.5/en/innodb-multiple-tablespaces.html).
Změnu MyISAM na InnoDB a opačně lze uskutečnit poměrně lehko http://stackoverflow.com/questions/3856435/how-to-convert-all-tables-from-myisam-into-innodb
nebo manuálně v phpMyAdmin. Je možné zvolit i kombinaci, když některé tabulky budou v InnoDB a jiné MyISAM. Např. v případě velkého objemu dat u importu je možné tabulky související s produkty nastavit na MyISAM, protože obnova dat v případě porušení těchto tabulek je snadná.
21. 1. 2013 13:31:43
https://webtrh.cz/diskuse/myisam-vs-innodb#reply855750
Ryuji
verified
rating uzivatele
(1 hodnocení)
21. 1. 2013 13:38:03
Napsal stanono;897623
Z hlediska bezpečnosti dat je doporučována databáze InnoDB. Nevýhodou InnoDB je delší zápis dat, co se projeví např. při pravidelném importu dat od dodavatele. V běžném provozu je rozdíl v rychlosti InnoDB vs. MyISAM téměř nepostřehnutelný. Výhodou InnoDB jsou transakce, které kromě jiného předcházejí kolizím při paralelním zápisu dat od dvou klientů a jsou odolnější v případě pádu serveru.
Z mé zkušenosti mohu doporučit fyzicky nastavit tabulky InnoDB do samostatných souborů použitím direktivy innodb_file_per_table (http://dev.mysql.com/doc/refman/5.5/en/innodb-multiple-tablespaces.html).
Změnu MyISAM na InnoDB a opačně lze uskutečnit poměrně lehko http://stackoverflow.com/questions/3856435/how-to-convert-all-tables-from-myisam-into-innodb
nebo manuálně v phpMyAdmin. Je možné zvolit i kombinaci, když některé tabulky budou v InnoDB a jiné MyISAM. Např. v případě velkého objemu dat u importu je možné tabulky související s produkty nastavit na MyISAM, protože obnova dat v případě porušení těchto tabulek je snadná.
Fajn, moc díky za odpověď. Dovolím si další dotaz... Když v instalaci jednoho Prestashopu vidím obří rozdíl v době instalace? Když rozdíl v rychlosti má být nepostřehnutelný? Při použití MyISAM instalace Prestashopu řady 1.5x cca za minutu a půl až dvě, při InnoDB před chvílí skončila časem cca deset a půl minuty! To není zrovna nepostřehnutelné... :-)
21. 1. 2013 13:38:03
https://webtrh.cz/diskuse/myisam-vs-innodb#reply855749
McFly
verified
rating uzivatele
(4 hodnocení)
21. 1. 2013 13:41:16
Kdysi jsem četl, že výhoda MyISAM je zejména u těch aplikací, které spíše čtou než zapisují. A ještě jsem nalezl zajímavý článek http://php.vrana.cz/rychlost-vkladani-do-innodb-tabulek.php - ale článek je starý pár let, dneska může být InnoDB někde jinde... Stejně tak http://www.mysqlperformanceblog.com/2007/01/08/innodb-vs-myisam-vs-falcon-benchmarks-part-1/ už možná nebude tak aktuální, jak bychom si přáli. :)
21. 1. 2013 13:41:16
https://webtrh.cz/diskuse/myisam-vs-innodb#reply855748
Michal Skoula
verified
rating uzivatele
(18 hodnocení)
21. 1. 2013 13:44:38
Napsal Ryuji;897628
Fajn, moc díky za odpověď. Dovolím si další dotaz... Když v instalaci jednoho Prestashopu vidím obří rozdíl v době instalace? Když rozdíl v rychlosti má být nepostřehnutelný? Při použití MyISAM instalace Prestashopu řady 1.5x cca za minutu a půl až dvě, při InnoDB před chvílí skončila časem cca deset a půl minuty! To není zrovna nepostřehnutelné... :-)
Mě se teda PS instaluje téměř okamžite, pokud zrovna nečeká na můj vstup (zadání údajů).
Doporučuji určitě InnoDB kvůli transakcím, klíčům a dalším featurám, MyISAM je zastaralé a ten rozdíl v rychlosti je u běžných aplikací nerozpoznatelný. Poskytovatel ti nemá co doporučovat, pokud tě omezuje na malém eshopy, vyměň ho :)
21. 1. 2013 13:44:38
https://webtrh.cz/diskuse/myisam-vs-innodb#reply855747
Ryuji
verified
rating uzivatele
(1 hodnocení)
21. 1. 2013 13:46:24
Napsal Michal Škoula;897635
Mě se teda PS instaluje téměř okamžite, pokud zrovna nečeká na můj vstup (zadání údajů).
Doporučuji určitě InnoDB kvůli transakcím, klíčům a dalším featurám, MyISAM je zastaralé a ten rozdíl v rychlosti je u běžných aplikací nerozpoznatelný. Poskytovatel ti nemá co doporučovat, pokud tě omezuje na malém eshopy, vyměň ho :)
Udělejte prosím malou reklamu, kde Vám to běhá dobře? Hosting/VPS a kde? :-)
21. 1. 2013 13:46:24
https://webtrh.cz/diskuse/myisam-vs-innodb#reply855746
Ano mate pravdu, jenže v případě instalace jde o stovky SQL dotazů (vytvoření tabulek, indexů a zápisy dat), stejně jako u importu produktů od dodavatele jde o stovky až tisíce zápisů. Psal jsem o běžném provozu e-shopu, kde se zapisuje jenom několik položek, převažuje čtení. Možností zvýšení rychlosti je použití serveru s disky SSD - testoval jsem instalaci s tabulkami MyISAM na běžný HDD a InnoDB na SSD. Výsledek: instalace InnoDB na SSD trvala zhruba čtvrtinu času (8 s).
Velmi důležité je nastavení konfiguraci MySQL (my.cnf) podle disponibilní paměti a předpokládané zátěže serveru. K tomu doporučuji nástroj MySQLTuner (https://github.com/rackerhacker/MySQLTuner-perl).
21. 1. 2013 14:00:08
https://webtrh.cz/diskuse/myisam-vs-innodb#reply855745
Michal Skoula
verified
rating uzivatele
(18 hodnocení)
21. 1. 2013 14:03:50
Napsal Ryuji;897637
Udělejte prosím malou reklamu, kde Vám to běhá dobře? Hosting/VPS a kde? :-)
Individuální tarif od Onebitu :) Ale musím uznat, že se jedná o starší verze PS 1.4 a 1.3
Menší eshop ale musí běhat na každém lepším hostingu...
21. 1. 2013 14:03:50
https://webtrh.cz/diskuse/myisam-vs-innodb#reply855744
Ryuji
verified
rating uzivatele
(1 hodnocení)
21. 1. 2013 14:04:37
Napsal stanono;897643
Ano mate pravdu, jenže v případě instalace jde o stovky SQL dotazů (vytvoření tabulek, indexů a zápisy dat), stejně jako u importu produktů od dodavatele jde o stovky až tisíce zápisů. Psal jsem o běžném provozu e-shopu, kde se zapisuje jenom několik položek, převažuje čtení. Možností zvýšení rychlosti je použití serveru s disky SSD - testoval jsem instalaci s tabulkami MyISAM na běžný HDD a InnoDB na SSD. Výsledek: instalace InnoDB na SSD trvala zhruba čtvrtinu času (8 s).
Velmi důležité je nastavení konfiguraci MySQL (my.cnf) podle disponibilní paměti a předpokládané zátěže serveru. K tomu doporučuji nástroj MySQLTuner (https://github.com/rackerhacker/MySQLTuner-perl).
Hmm, děkuji za cenné informace.
21. 1. 2013 14:04:37
https://webtrh.cz/diskuse/myisam-vs-innodb#reply855743
Napsal Ryuji;897637
Udělejte prosím malou reklamu, kde Vám to běhá dobře? Hosting/VPS a kde? :-)
:-)
www.prestacs.cz
21. 1. 2013 14:08:02
https://webtrh.cz/diskuse/myisam-vs-innodb#reply855742
Ryuji
verified
rating uzivatele
(1 hodnocení)
21. 1. 2013 14:21:26
Napsal stanono;897648
:-)
www.prestacs.cz
No to je sice krásné, ale já mám ty Presty už teď dvě, chystám třetí a čtvrtou... To bych se asi nedoplatil, i když bych měl možná nejrychlejší Prestashopy v ČR... :-D
21. 1. 2013 14:21:26
https://webtrh.cz/diskuse/myisam-vs-innodb#reply855741
Pro odpověď se přihlašte.
Přihlásit