Autor | Zpráva | ||
---|---|---|---|
DarkMeni Profil |
#1 · Zasláno: 29. 5. 2012, 21:37:16
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 |
#2 · Zasláno: 29. 5. 2012, 22:10:47
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 |
#3 · Zasláno: 29. 5. 2012, 22:40:08
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 |
#4 · Zasláno: 30. 5. 2012, 08:12:38
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 |
#5 · Zasláno: 30. 5. 2012, 08:20:31
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 |
#6 · Zasláno: 30. 5. 2012, 09:04:02
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 |
#7 · Zasláno: 30. 5. 2012, 10:37:50
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 |
#8 · Zasláno: 30. 5. 2012, 16:55:22
Jo, díky za rady
|
||
Časová prodleva: 12 let
|
0