Portál AbcLinuxu, 10. května 2025 14:16
Zdravím, mám takový začátečnický dotaz. Máme navrženou databázi (vytvořené tabulky naplněné daty) v MySQL. Nyní bychom rádi do jedné tabulky databáze vkládali (příslušné položce tabulky) i soubory (přes atributy FILE_ID či URI). Tyto soubory bysme chtěli uchovávat mimo databázi někde na filesystemu. Problém je v tom, že nevíme, jak toto realizovat. Co vše musíme udělat pro to, aby šli soubory vkládat a získavát? Chceme mít rozhraní v Javě na PC (např. notebook), které do příslušné položky tabulky v databázi udělá záznam o souboru (např. URI) a zároveň tento soubor uloží na filesystem (např. na jiný server než běží samotná databáze). Z tohoto rozhraní by mělo jít zároveň tento soubor získat. Databáze MySQL beží na linuxovén serveru.
Díky za každou radu či příklad.
Martin
Ano, tak nějak. Těch nevýhod je si myslím víc, než při ukládání souborů přímo do BLOBu v databázi.
Hodně se mluví o zpomalení databáze při použití BLOBů. Nevím, jak to má MySQL, ale tato hlavní nevýhoda se dá eliminovat použitím jedné tabulky pro informace o souboru (z této tabulky se bude vyhledávat, bude možné ji JOINovat jinam) a druhé tabulky se samotným BLOBem, s vazbou 1:1 na první tabulku, do které se sáhne teprve při potřebě se souborem pracovat.
Trochu by pomohlo vědět, o jaké soubory se jedná. Můj přístup se bude hodit při databázi zaměstnanců na uložení JPEG. Určitě se nebude hodit na databázi filmů, kde se bude ukládat DVD.ISO.
Hmm, ja delal mereni Oracle vs. JFS na AIXu a od 10^4 souboru v jednom adresari vedl Oracle. NFS poskytovalo nekonzistentni udaje, a kdyz jsem namontoval filesystemy s parametrem noac, tak bylo NFS nepouzitelny.
Njn, od nekolika stovek zaznamu se oplati udelat hierarchie treba 12/34/56.jpg. Takto narves milion souboru do struktury pricemz tam jevzdy max 100 souboru/adresaru v adresari a dvoji traverzace nestoji skoro nic.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.