Fórum Root.cz
Hlavní témata => Software => Téma založeno: 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
-
Asi bych zvolil typ CSV.
-
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.
-
SQLite? Nebo tmpfs na nem SQLite a rsync napr. po 15/30min nekam na backuper?
-
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
-
narozdil od ostatnich k dotazu: dnes uz pouzivam jen innodb + file per table nastaveni(+ par dalsich veci jako barracuda, nastaveni bufferu apod ktery nepotrebujes).
-
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
-
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
-
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
-
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.
-
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