Autor Zpráva
DarkMeni
Profil
Zdravím, je rychlejší přístup k databázi nebo přečtení souboru? Když budu mít data, která nemusí být zabezpečená, tak je pak pořád lepší a rychlejší databáze nebo čtení ze souboru?
Že u databáze se musí nejdřív navazovat spojení - a to může asi nějakou mikrochvíli trvat, a u čtení je to zase zpracovávání souboru do pole, aby to vypadalo jako výstup z db a líp se s tím pak pracovalo.
Darker
Profil
Výhoda databáze spočívá spíš ve zpracovávání objemu dat. Pokud bys ukládal pole do souboru, je lepší použít databázi. Zásadní výhoda databáze pak spočívá v tom, že se ti "nepřepisují" data. Když jsem měl velký objem dat v souboru jako XML, často se mi soubor přemazával a já přišel o data.
Co se týče navazování spojení - jak dlouho asi trvá spojení na 127.0.0.1?
DarkMeni
Profil
Spíš by sem měl ukládat obsahy stránek do souborů - takže to zpracovávání do pole ani potřebovat nebudu (každá stránka by měla mít vlastní .txt soubor), myslim si, že pak by to mělo i jednodušší systém záloh (nemusela by se dumpovat databáze), ale teď jestli je to rychlejší nebo aspoň stejně rychlý?
greeny
Profil
Doporučuju databázi, tam pak můžeš dělat aji další fígle, jako třeba mít další sloupečky na nadpis, formátování, blokování přístupu, apod... Jen nezapomeň na správné escapování ;)
candiess
Profil
DarkMeni:
Pokud se jedná o nějaký vlastní redakční systém, nebo jen hodláš pracovat s články, tak to bude assi lepší do souboru. Třeba já to mám udělané tak, že text článku si uložím do souboru a do DB ho pouze zaindexuji (tím myslím, že tam hodím ID, autora,.. a pak url na ten soubor), vyhneš se tak v budoucnu pomalejšímu načítání dat, protože v té db budeš mít méně dat.

Na druhou stranu tím ztratíš např. fulltextové hledání v textu, ono je to většinou o správném návrhu tabulek a DB celkově, taky s tím mám problémy :)
Kajman
Profil
DarkMeni:
Zdravím, je rychlejší přístup k databázi nebo přečtení souboru?

Zkuste si to změřit pro Vaše požadavky a podmínkách, kde to bude běžet.
Joker
Profil
DarkMeni:
je rychlejší přístup k databázi nebo přečtení souboru?
Podle toho, jak se s těmi daty manipuluje.

V triviálním případě, kdy se jen uloží nějaká data a pak se zase přesně ve stejné podobě načtou, bude rychlejší soubor (databáze taky čte data z disku a ještě má nějakou režii nad tím, takže ve čtení dat z disku bude souborový systém vždycky rychlejší).
Jenže záleží třeba i jestli se ta data načtou víckrát za sebou (třeba víc návštěvníků zobrazí stránku, databáze mívá cache), jak jsou ta data organizovaná (načtení jednoho souboru vs. složitý dotaz do databáze a naopak jednoduchý dotaz do databáze vs. čtení dat z mnoha souborů)
Navíc často je potřeba zobrazovat data různými způsoby: Vybírat, řadit, třídit, atd. U souborů se to musí doprogramovat v aplikaci, což stojí čas a je zdroj potenciálních chyb, zatímco databáze jsou na tohle dlouhodobě vyzkoušené, odladěné a výkonově optimalizované.

Další otázka je, jak moc je vlastně ten rozdíl v rychlosti důležitý. Je zrychlení stránky o 0,0001s za cenu drastického omezení flexibility (data budou „zadrátovaná“) výhra? Výkonové optimalizace zhoršující údržbu nebo budoucí rozšiřování aplikace bych řešil až ve chvíli, kdy skutečně je nějaký problém s výkonem.
Soubory mají smysl pro data, podle kterých nemá smysl řadit nebo třídit a i databáze by se u nich použila stejně jako souborový systém- třeba HTML šablony, obrázky, CSS/JS soubory a podobně.

K úvaze: I při uložení dat v databázi může mít aplikace souborovou cache. Například když stránka zobrazuje data která se prakticky nemění a trvá dlouho je z databáze načíst, může si celou stránku předgenerovat do souboru a pak ji zobrazovat z něj (a soubor přegenerovat jen při změně dat).
DarkMeni
Profil
Jo, díky za rady

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0