Fórum Root.cz

Hlavní témata => Software => Téma založeno: P. Poláček 27. 11. 2014, 20:42:19

Název: MySQL na SD kartě - MyISAM nebo InnoDB?
Přispěvatel: P. Poláček 27. 11. 2014, 20:42:19
Ahoj,

Mám takovou prosbu. Potřebuji na Raspberry Pi dlouhodobě provozovat MySQL databázi. Bude ukládat data z měřících přístrojů. Asi 10 tabulek a do zhruba 4 z nich se bude pravidelně zapisovat. Každou minutu 1 až 3 záznamy. U ostatních jednou denně nějaký sumární výpočty s asi 100 zápisy. Transakce nepotřebuju a bez ref. integrity atd. se taky obejdu, takže mám na výběr mezi MyISAM a InnoDB tabulkami.

Je možné říct, který typ tabulek je odolnější vůči chybě datového média při zápisu? Prostě kdyby začala karta při zápisech časem blbnout, tak u kterého typu tabulek je větší pravděpodobnost, že datové soubory zůstanou konzistentní alespoň pro čtení a půjde je odkopírovat jinam.

Na první pohled se mě zdá výhodnější MyISAM, který má každou tabulku v samostatných souborech. Ale vím, že i u InnoDB lze SQL server nastavit tak, aby každá tabulka měla svůj soubor. Což je pro záchranu dat asi lepší, než když je vše v jednom velkém souboru (výchozí nastavení InnoDB).

Filesystém karty bude ext4 s relatime. Kartu samozřejmě zvolím co největší kvůli rozložení zápisů.
Zatím mě to tu běží asi do července v testovací verzi na malé 4GB kartě a vše bez problémů. Ale než to nasadím naostro místo PC, rád bych ještě toto dořešil.

To PC tu běží už asi 5 let a taky párkrát spadlo (výpadek proudu a slabá UPS). Ale u MyISAM to vždycky odnesly jen indexy a vše vyřešil myisamchk. U SD karty hrozí spíš chyba média a tak bych jen chtěl vědět, jestli InnoDB není víc odolná na tento typ chyb. Zálohování samozřejmě bude.

Díky předem za rady.
Petr
Název: Re:MySQL na SD kartě - MyISAM nebo InnoDB?
Přispěvatel: Kit 27. 11. 2014, 21:03:44
Asi bych zvolil typ CSV.
Název: Re:MySQL na SD kartě - MyISAM nebo InnoDB?
Přispěvatel: j 27. 11. 2014, 21:21:18
1) ses si jistej, ze potrebujes MySQL? Nestacilo by neco lehciho?
2) karta (ani zadny jiny podobny medium) nikdy nezacne blbnout, ale proste z minuty na minutu zdechne. A nejen ze na to nic nezapises, ty z toho uz ani nic neprectes. A ver tomu, ze pri provozu MySQL ta karta kdyz vydrzi mesic, muzes si gratulovat.

Mimochodem, karta nema zadnej radic, kterej by se staral o pocet zapisu, takze ti velikost nepomuze.
Název: Re:MySQL na SD kartě - MyISAM nebo InnoDB?
Přispěvatel: fahacz 27. 11. 2014, 21:30:24
SQLite? Nebo tmpfs na nem SQLite a rsync napr. po 15/30min nekam na backuper?
Název: Re:MySQL na SD kartě - MyISAM nebo InnoDB?
Přispěvatel: karel 27. 11. 2014, 21:49:19
souhlasim ze co se karty tyka tak proste zdechne,
doplnil bych to pi o flesku, ci dve at mas zalohy nebo paklize to pi bude na siti pravidelne bych si data stahoval.

Zadruhe je opravdu otazka zda je nutne na to pouzivat databazi
Název: Re:MySQL na SD kartě - MyISAM nebo InnoDB?
Přispěvatel: to_je_jedno 27. 11. 2014, 22:39:50
narozdil od ostatnich k dotazu: dnes uz pouzivam jen innodb + file per table nastaveni(+ par dalsich veci jako barracuda, nastaveni bufferu apod ktery nepotrebujes).
Název: Re:MySQL na SD kartě - MyISAM nebo InnoDB?
Přispěvatel: P. Poláček 28. 11. 2014, 08:47:39
Díky všem za postřehy.

Neviděl bych to tak černě s tím, že karta vydrží jen měsíc. Jak jsem psal, jede mě to tu pokusně už skoro půl roku a zatím není problém. To ale neznamená, že se to zítra nepodělá. Takže díky za upozornění, že karta zdechne z ničeho nic úplně. Myslel jsem, že blbnout začne jen zápis kvůli omezenému počtu zápisových cyklů na paměťovou buňku. Zálohovat určitě budu, zřejmě na tu flešku a po zapnutí PC i na počítač.

SQLite bohužel neumí pracovat úplně korektně s datumem a časem, takže je to pro můj případ špatně použitelné. Respektive bych musel matematické operace u datumů dělat v programu. Navíc si nejsem jistej, jestli je SQLite nějak šetrnější k mediu typu paměťová karta. Tam asi rozdíl nebude. Nebo jo?

Zajímavá je ta myšlenka s natažením DB do tmpfs v RAM a občas překopírovat na kartu. To bude asi správná cesta.
Nad InnoDB se samostatnými soubory pro tabulky jsem taky uvažoval. Ale je tam nějaká výhoda oproti MyISAM, když nepotřebuju transakce atd? Nebude to jen pomalejší?

Petr
Název: Re:MySQL na SD kartě - MyISAM nebo InnoDB?
Přispěvatel: karel 28. 11. 2014, 09:24:37
No a co zkusit mariadb a aria tenle engine kombinueje vyhody obou zminenych

zrychlene povidani wiki http://en.wikipedia.org/wiki/Aria_%28storage_engine%29

https://mariadb.com/kb/en/mariadb/documentation/storage-engines/aria/


ja mariadb pouzivam uz na vsechno
Název: Re:MySQL na SD kartě - MyISAM nebo InnoDB?
Přispěvatel: DK 28. 11. 2014, 09:30:28
No a co zkusit mariadb a aria tenle engine kombinueje vyhody obou zminenych

zrychlene povidani wiki http://en.wikipedia.org/wiki/Aria_%28storage_engine%29

https://mariadb.com/kb/en/mariadb/documentation/storage-engines/aria/


ja mariadb pouzivam uz na vsechno

Aria imho neni vubec transakcni, takze vubec nekombinuje vyhody MyISAM a InnoDB (spis je to jenom takove vylepsene MyISAM)... osobne bych asi zvolil XtraDB (Percona), nicmene na SD karte to asi fakt nevydrzi moc dlouho
Název: Re:MySQL na SD kartě - MyISAM nebo InnoDB?
Přispěvatel: to_je_jedno 28. 11. 2014, 09:36:53
Ja teda taky jedu uz jen na marušce. Aria nepouzivam, InnoDB vs MyISAM vidim asi tak, ze zadny problemy za to nestoji. Zkratka InnoDB mi narozdil od MyISAM nekleklo nikdy.

Se zatezi 1-3 zaznamy za minutu nepoznas vykonnostni rozdil.
Název: Re:MySQL na SD kartě - MyISAM nebo InnoDB?
Přispěvatel: karel 28. 11. 2014, 10:42:38
Aria imho neni vubec transakcni, takze vubec nekombinuje vyhody MyISAM a InnoDB (spis je to jenom takove vylepsene MyISAM)... osobne bych asi zvolil XtraDB (Percona), nicmene na SD karte to asi fakt nevydrzi moc dlouho

pro dotaz je podle me aria dobra volba prave proto ze je to MyISAM s transakcnim logem, cili nezhrou ti se jako MyISAM ale neni narocna jako InnoDB, sam tazatel tvrdi ze transakce jako takove nepotrebuje, rozhoduje se z pohledu vykonu x stabilita a zde mi aria prijde jako dobra volba