Autor Zpráva
Jont
Profil
Ahoj,
pro svou aplikaci řeším následující věc: K určitým souborům musí mít přístup více uživatelů a musím jim v jejich frontendu na to dát odkaz (zjistit název toho souboru). Nyní to mám uložené v hlavní databázi a když uživatel navštíví stránku, tak se provede mysql dotaz a ten vypíše název souboru.

Napadlo mě ale, zda by nebylo rychlejší dát ke každému souboru do složky txt soubor, v kterém bude napsáno, jak se ten soubor jmenuje. a další údaje (ale jen asi 10 řádků). To pak zjistí php skript (třeba přes file) a zobrazí odkaz na stránce. Zkoušel jsem to a bylo to asi o 0,3 ms rychlejší než přes mysql.

Ovšem když to bude v souboru, tak to nebude moct jednoduše upravovat přes databázi, kterou pro evidenci stejně potřebuji a mohl z toho být dost nepořádek. Praktičtější by bylo lepší to řešení přes mysql.

Tak se chci zeptat, jestli se db server nějak zpomalí. Kromě těch dotazů na soubor tam budou samozřejmě i ostatní dotazy, dejme tomu za 1 min. tak 10-20 (možná méně). A jestli je tedy z hlediska rychlosti lepší použít ten txt soubor - jak zatěžuje to čtení hardware a jestli se ta rychlost při té zátěži sníží nebo ne.
Ještě dodám, že to poběží na VPS - procesor 600 Mhz, RAM 256 MB.

Ještě jsem žádný podobně "velký" web nedělal, tak bych nerad zjistil, že uživatelé čekají na stránku třeba 2s, což jistě chápete.

Díky za odpověď

P.S.: Stručná verze dotazu: Kolik můžu mít na low-end serveru sql dotazů za 1 min. (nebo hodinu, nevím jak se to udává)?

A ještě doplňující dotaz: Bylo by lepší mít uložené ty hodnoty pro každého uživatele ve zvláštní tabulce než v centrální databázi? Jako že by tam případně nemuseli čekat, až si to vyžádá někdo jiný a vzali by si to rovnou.
Kacko
Profil
Jont:
Stručná verze odpovědi: DB + cache; minimalne desitky uzivatelu/s
Jont
Profil
Ok, můžeš mi odpovědět i na ten poslední dotaz? Nebudou tam na sebe třeba čekat, když budou chtít to stejné?
Ostatní to prosím trošku rozviňte :).
Kacko
Profil
Jont:
Pokud bude "zvlastni tabulka" v te same "centralni" databazi, tak je to uplne jedno. Pokud bude v ruznych databazich, ale obe pobezi na stejnem stroji, tak je to take jedno.
Jont
Profil
Bude to v jiné databázi, ale na stejném stroji, takže podle tebe v pohodě. Doufám, že máš pravdu :).
Takže db není jako filesystem, přistupuje se tam nějak centrálně? Nebo to zpomalení je tak malé? Dík
Kacko
Profil
Jont:
Ne, spatne jsi me pochopil - bude to jedno, protoze to bude stejne pomale jako kdyby to bylo v jedne DB.

DB je "nadstavba" na filesystemem. Samotna data jsou ulozena v souborech. Jen se k nim lepe pristupuje. Jinak MySQL si data kesuje, takze pri tom samem opetovnem dotazu uz nic nehleda.. Kesuj si primo HTML vystup a zbavis se problemu.
Jont
Profil
Tak jo, asi to udělám přes DB.
Já jsem to spíš myslel tak, že by se jako rozložila zátěž mezi DB server a server tím, že by se něco četlo ze souborů. A jestli by to ten server zatížilo méně, než když bude vše načítané z DB.
Jont
Profil
Můžete mi ještě odpovědět?
Jont
Profil
No tak ne, co se dá dělat.

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: