MySQL databáze nad 500 MB

Jaroslav

Re:MySQL databáze nad 500 MB
« Odpověď #30 kdy: 13. 06. 2014, 13:46:50 »
a tohle vsechno jsme meli tusit z kavove sedliny nebo vestecke koule?

dekuju tem co prispeli do konverzace necim uzitecnym ...


Re:MySQL databáze nad 500 MB
« Odpověď #31 kdy: 13. 06. 2014, 21:07:39 »
To je ale implementace v PostgreSQL. Navíc i tam by v tomhle případě asi šlo bez problémů použít bytea. Tazatel ale píše o MySQL, kde jsou BLOBy normální datový typ.

Fajn, z rychlého přeletění dokumentace MySQL (5.5) to vypadá, že (long)blob je u mysql podobný typ jako bytea v psql. Potom tedy ano.

Mě MySQL nesmí do domu už nějakých pár let, takže tohle mi uniklo.

Ono se hodně změnilo v průběhu času a takovej Gallera Cluster není vůbec špatná věc.
http://galeracluster.com/products/
Je fakt, že vývoj byl vždycky spíš cílený na praktické věci, zatímco PostgreSQL se snaží jít cestou Oracle DB (obojí ma něco do sebe)
„Řemeslo se naučí každý. Umění nikdo.“
„Jednoduchost je nejvyšší úroveň sofistikovanosti.“
- Leonardo Da Vinci

Trident

Re:MySQL databáze nad 500 MB
« Odpověď #32 kdy: 14. 06. 2014, 00:06:41 »
Problem nekterych lidi tkvi v tom, ze stale neveri ze moderni filesystem muze byt na spravu efektivnejsi a rychlejsi nez databaze. Historicky se databaze pouzivaly na obejiti limitaci tehdejsich filesystemu. Koneckoncu filesystem je jen druh specialni databaze;)
V momente kdyz ale muzu strukturovat filesystem do nekonecna (neni limit vnorenych adresaru a souboru v adresari), deduplikace, vlastni indexace adresaru, snapshoty, online replikace a presuny celych dat na jine svazky, tak potom prestava mit jakkakoliv databaze na pouhe ukladani samotnych fotek smysl.

h7

Re:MySQL databáze nad 500 MB
« Odpověď #33 kdy: 14. 06. 2014, 00:40:22 »
Tohle umí které filesystémy?

snajpa

Re:MySQL databáze nad 500 MB
« Odpověď #34 kdy: 14. 06. 2014, 09:10:39 »
ZFS :)


dustin

Re:MySQL databáze nad 500 MB
« Odpověď #35 kdy: 14. 06. 2014, 10:05:56 »
Každý nástroj je k něčemu určen. Pokud potřebuje aplikace k fotkám ukládat metadata, slouží k tomu databáze. Pokud DB zvládne i uložení přímo binárních dat, nabízí se logicky uložení všeho dohromady. Jednoduchost zálohování, udržování konzistence, atd.

500MB není žádná velká databáze. Pokud k souborům není potřeba přistupovat přes filesystém (např. po síti přes sambu či nfs), klidně bych takové soubory do DB uložil. Je to nejjednodušší a jednoduchá řešení bývají ta správná. Záloha je snadná, pro větší objemy doporučuji mysqldump s parametrem --tab. Výsledné soubory pro jednotlivé tabulky se snadno inkrementálně zálohují, lze je před zálohováním bzipnout, snadno z nich lze obnovit jen jednu nebo několik tabulek a je to rychlejší (mnohokrát vyzkoušené).

Řešit takovou aplikaci přes funkce ZFS je nesmysl.

Kit

Re:MySQL databáze nad 500 MB
« Odpověď #36 kdy: 14. 06. 2014, 10:35:38 »
Řešit takovou aplikaci přes funkce ZFS je nesmysl.

Ke každému souboru je možné přidat libovolné množství dalších atributů. To je pro takovou aplikaci jak stvořené.

flv

Re:MySQL databáze nad 500 MB
« Odpověď #37 kdy: 14. 06. 2014, 11:24:21 »
Ukladat soubory do db smysl ma, alespon v pripade, kdy tech souboru ukladate vice nejdnou, jsou na sobe zavisle a potrebujete zajistit integritu pri rollbacku.


whatever

Re:MySQL databáze nad 500 MB
« Odpověď #38 kdy: 14. 06. 2014, 13:08:22 »
Ahoj,
udelal jsem ti takovej jednoduchej php script pro ukladani PNG do DB jenomze, ted mi databaze s obrazky zabere asi 500 Mb a casto se mi stava ze php se proste "zasekne" a data z DB mi nezobrazi (misto toho mam jenom bilou stranku). Uloziste v DB je zvoleno INODB. Obrazky se ukladaji pomoci base64...
Muze prosim nekdo poradit?
podivat se na long queries. zkontrolovat jestli nevisi na plnym replikacnim logu. zkontrolovat jestli nevisi na plnym ulozisti cili kvoty uvnitr ino a kvoty na mediu na kterem je to ino a cekova kapacita oblasti ve ktere je to ino minus pro roota vyhrazene bloky. zkontrolovat kernel log na chyby. zkontrolovat delku io front jestli se potichoucku nekurvi fyzicke uloziste a firmware to jen maskuje. zkontrolovat misto pro logovani beziciho mysql enginu (ted nemyslim replikacni log, ale warningy/errory). podle toho co se najde pak budes pokracovat v dalsim hledani...

dustin

Re:MySQL databáze nad 500 MB
« Odpověď #39 kdy: 14. 06. 2014, 13:22:00 »
Ke každému souboru je možné přidat libovolné množství dalších atributů. To je pro takovou aplikaci jak stvořené.

Ty atributy jsou naindexované pro rozumně výkonné vyhledávání? Je k dispozici standardní známý a široce podporovaný jazyk pro jejich vyhledávání i přes více najednou (joinování inner i left), spoustu funkcí, hromadnou aktualizaci - tedy sql nebo nějaký nosql dotazovací jazyk? A jak je zajištěna referenční integrita mezi více soubory? Jak je zajištěna transakční bezpečnost při ukládání více informací více příkazy po sobě?

Databáze a filesystém jsou různé technologie a každá slouží k něčemu jinému.

Jan Nejman

Re:MySQL databáze nad 500 MB
« Odpověď #40 kdy: 14. 06. 2014, 16:38:14 »
Ahoj,

  jinak 'blob' neni prilis vhodny pro ulozeni dat. Do blobu jde v MySQL ulozit jen 64kB dat! Nevim, jak velka
data tam ukladas, ale pokud vetsi, doporucuji pouzit rovnou longblob (max. 4GB)... Pokud mas delku radku
delsi jak 64kB (zvlast po base64 ti to jeste naroste), tak MySQL data orizne na max. velikost daneho typu.
To by pak mohlo zpusobovat, ze mPDF vytuhne, protoze mu tam davas neuplny data... Mozna hodi MySQL
warning, ale insert s automatickym orezem urcite projde... Mozna v tomto bude zakopany pes, teda me by
to davalo smysl. Samozrejme, jak uz jsem psal, je nutne udelat vice kroku, jak diagnostikovat misto problemu.
Napr. nevolat mPDF ale treba nactena data z MySQL jen vypsat na obrazovku, alespon pak budes vedet,
jestli MySQL jede a problem je nekde dale...

Mej se,
Honza

andy

Re:MySQL databáze nad 500 MB
« Odpověď #41 kdy: 14. 06. 2014, 19:30:22 »
To akoze tahas pdf-ka selectom? To fakt neni moc dobre. Zbytocne vyzieras systemove zdroje. Lepsie by bolo si to aspon hned po selecte ulozit niekde do tempu a uz  stym pracovat ako so suborom.

Re:MySQL databáze nad 500 MB
« Odpověď #42 kdy: 14. 06. 2014, 21:21:30 »

podlesh

Re:MySQL databáze nad 500 MB
« Odpověď #43 kdy: 15. 06. 2014, 22:31:49 »
To je ale implementace v PostgreSQL. Navíc i tam by v tomhle případě asi šlo bez problémů použít bytea. Tazatel ale píše o MySQL, kde jsou BLOBy normální datový typ.

Fajn, z rychlého přeletění dokumentace MySQL (5.5) to vypadá, že (long)blob je u mysql podobný typ jako bytea v psql. Potom tedy ano.

Mě MySQL nesmí do domu už nějakých pár let, takže tohle mi uniklo.
Jenom bych upozornil, že toto není specialita MySQL, mají to tak i jiné db engine. Naopak mi přijde že většina a postgresql je v tomto trochu atypický.

anton stahovec

Re:MySQL databáze nad 500 MB
« Odpověď #44 kdy: 17. 06. 2014, 10:22:44 »
Obrazky ukladaj na disk je zbytocne ich davat do DB. Podla id obrazka si vytvor napr.: 2 urovne adresarov.

ID obrazka 0x1234567890

prvy adresar bude mat meno 90 a jeho podadresar meno 78 t.j. na prvej urovni budes mat 256 adresarov a kazdy adresar max. 256 podadresarov. File system by mal kludne tuto hierarchiu zvladnut.