Portál AbcLinuxu, 23. dubna 2024 10:29


Dotaz: SQL: blob alebo cesta?

13.12.2008 14:31 mikro
SQL: blob alebo cesta?
Přečteno: 648×
Odpovědět | Admin

Zdravim,

nie som prilis expert na veci okolo databaz, tak by som sa chcel spytat -- mam (server) aplikaciu, ktora komunikuje s databazou. V tejto DB musi byt o.i. ulozeny aj binarny obsah, zhruba 2-3 MB na kazdeho pouzivatela. Kedze ide o data, ktore si klient k sebe stiahne, nie je problem ich mat ulozene niekde externe a v DB mat len cestu, kde ich potom server aplikacia najde.

Chcel by som sa spytat, ma nejaky zmysel uvazovat nad BLOBom? Je mi jasne, ze cesta vnasa trochu redunancie (zmenim cestu, musim zmenit aj umiestnenie na disku), ale zase predpokladam, ze ziskanie informacie od DB o ceste a nasledne nahranie uz pomocou server aplikacie je neporovnatelne rychlejsie a menej stresujucejsie pre DB... v akych pripadoch by ste ten BLOB doporucili pouzit?

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Heron avatar 13.12.2008 15:56 Heron | skóre: 53 | blog: root_at_heron | Olomouc
Rozbalit Rozbalit vše Re: SQL: blob alebo cesta?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Určitě má smysl uvažovat nad BLOBem. Výhodou je jedno datové úložiště a s tím související snadné oddělení aplikace a dat na dva různé stroje. Jinak by se musel řešit vzdálený přístup k datům (ne že by to nešlo).

Z jedné studie od MS, kde srovnávali rychlost DB a NTFS, plyne, že DB je rychlejší pro objekty do cca 250kB, pak je rychlejší FS. Ale rychlost DB neklesá, to jen rychlost NTFS pro větší soubory roste. Totéž bude platit i pro ostatní DB a FS (s jinou velikiostí souborů, samozřejmně).
Heron
AraxoN avatar 14.12.2008 00:25 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
Rozbalit Rozbalit vše Re: SQL: blob alebo cesta?
Odpovědět | | Sbalit | Link | Blokovat | Admin

Ja som na to išiel tak, že som si povedal: chcem aby môj dump databázy mal 70 mega, alebo 70 giga? Zvíťazilo 70 mega. :) Navyše keď to je v súboroch, tak sa nad tým dajú jednoducho spúšťať ďalšie príkazy - clamscan, file, convert, a tak. Na druhej
strane vynútenie integrity dát je ta tam...

Heron avatar 15.12.2008 09:26 Heron | skóre: 53 | blog: root_at_heron | Olomouc
Rozbalit Rozbalit vše Re: SQL: blob alebo cesta?
To je snad jedno, ne? Stejně je třeba zálohovat těch 70GB dat. A opět, co je snadnější, jeden dump, nebo ještě zvlášť řešit datové soubory?

Ty příkazy můžeš použít i když je to v DB. Buď přes rouru, nebo si dočasně ten soubor někam uložíš.
AraxoN avatar 15.12.2008 16:41 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
Rozbalit Rozbalit vše Re: SQL: blob alebo cesta?

70 GB dump je neskladný. Neviem to rýchlo preniesť na devel server, lebo ten má "len" 2 MBit linku a trvá to 3 dni. Plus spravím na serveri 4 denné snapshoty a voľné miesto sa tým minulo.

Keď to je v súboroch ktoré sa príliš nemenia, tak viem preniesť zmeny cez rsync za pár minút, a pre denné zálohy mám miesto na celý rok.

Okrem toho viem fileserver oddeliť od DB serveru, až nastane ten čas, že to jeden server všetko neutiahne.

15.12.2008 09:53 Ivan
Rozbalit Rozbalit vše Re: SQL: blob alebo cesta?

Tech 70 giga je presne ten duvod proc bys' to do DB dat mel. Pokud zalohuje data aplikace, tak bys mel zazalohovat opravdu vsechna data. Zalohy delas proto, abys' je moh pouzit pro obnovu. Kcemu ti bude dump DB s cestama k neexistujicim souborum?

 

AraxoN avatar 15.12.2008 16:51 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
Rozbalit Rozbalit vše Re: SQL: blob alebo cesta?

Robiť zálohu 70 GB každý deň? Netúžim 2x denne bežať do serverovne (niekoľko km vzdialenej) a meniť pásku. Neviem dosť dobre urobiť rozdielový SQL dump - diff medzi dvoma súbormi väčšími už len ako 500 MB skončil zatiaľ vždy katastrofou. Preto zálohujem celý dump (70 M), a súbory potom už len inkrementálne. Pri obnove najprv obnovím DB a následne budem riešiť súbory. Radšej než oboje naraz - keď nie je DB tak sa nedá ani len prihlásiť, zatiaľčo keď nie sú súbory, tak sa dá so systémom pracovať celkom v pohode, len nie sú k dispozícii niektoré funkcie.

16.12.2008 11:30 Ivan
Rozbalit Rozbalit vše Re: SQL: blob alebo cesta?

Aha, takze ty vlastne jenom obchazis to, ze tvoje DB neumi inkrementalni zalohy. Nebylo by jednodussi zamerit se rovnou na ty incrementalni zalohy?

 

AraxoN avatar 16.12.2008 16:05 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
Rozbalit Rozbalit vše Re: SQL: blob alebo cesta?

Je dosť možné, že to tá DB podporuje (jedná sa o PostgreSQL), len som bol lenivý to naštudovať... V princípe môžeš mať pravdu, že mám len zlé postupy... :-) Prišlo mi to takto jednoduchšie...

Josef Kufner avatar 16.12.2008 18:08 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: SQL: blob alebo cesta?
Další věc která hraje ve prospěch souborů je menší zátěž serveru -- k získání souboru není třeba obtěžovat DB a může to vyřídit Apache bez cizí pomoci (pokud není třeba nějak regulovat přístup).
Hello world ! Segmentation fault (core dumped)
15.12.2008 09:56 FooBar
Rozbalit Rozbalit vše Re: SQL: blob alebo cesta?
Odpovědět | | Sbalit | Link | Blokovat | Admin

Promysli si pri svem rozhodovani taky scenar, kdy budou data distribuovana pres vice serveru (pro failover).

15.12.2008 16:48 KS | skóre: 10 | blog: blg | Horní polní u západní dolní
Rozbalit Rozbalit vše Re: SQL: blob alebo cesta?
Odpovědět | | Sbalit | Link | Blokovat | Admin

Práce s blobem máš jednodušší. Nemusíš generovat název souboru. Pokud mažeš fotky z databáze, nemůsíš se zajímat o mazání souboru. Pokud bys mazal z databáze záznam fotografie přes nějaké vazby (ON DELETE CASCADE, ...), tak by se zároveň mazání souborů dělalo dost blbě. Můžeš na ně aplikovat databázové práva...

Pochybnost, nejistota - základ poznání
16.12.2008 08:24 YYY | skóre: 29 | blog: martinek
Rozbalit Rozbalit vše Re: SQL: blob alebo cesta?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ja osobne preferuji binarni data primo v databazi. Nejenom kvuli zaloham, ale i kvuli tomu, ze mam takovy lepsi pocit, ze mam tak nejak vsechna data na jednom miste. Kdyz se neco stane s db, tak si muzu rovnou hodit masli a nemusim resit soubory nekde na souborovem systemu.
19.12.2008 11:20 akomano | skóre: 16 | blog: Došiel čaj v kávomate | Malacky
Rozbalit Rozbalit vše Re: SQL: blob alebo cesta?
Odpovědět | | Sbalit | Link | Blokovat | Admin

V súvislosti s predchádzajúcimi komentármi by stál za zváženie kompromis: ukladania do BLOB-u, ale v oddelenej databáze. Táto sa v prípade môže dedikovať na iné železo a integritu zabezpečovať aplikačne. Zálohovať sa tým pádom môže oddelene. Záleží na tom ako DB podporuje aliasy...

Ja vim, on vi, a ty sed, nano!
Josef Kufner avatar 19.12.2008 16:35 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: SQL: blob alebo cesta?
To mi přijde jako řešení, které má nevýhody obou možnoastí, jak souborů, tak databáze.
Hello world ! Segmentation fault (core dumped)

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.