Autor Zpráva
Radek Cvek
Profil *
Dobrý den, chtěl bych tímto rozjet diskuzi, zda-li je lepší pro ukládání článků nějakého portálu používat MySQL datový typ TEXT (a do něj tento článek uložit) nebo pouze do databáze ukládat cestu k souboru (třeba .TXT) , kde bude tento článek uložený.
Byl bych rád, kdybych se dozvěděl klady a zápory jednotlivých přístupů - ideání by bylo, kdyby to bylo podpořené i nějakým odkazem nebo zkušeností.
Samozřejmě mi jde hlavně o rychlost zobrazování a velikost ukládaných dat, jestli jsou další (ne)výhody - třeba bezpečnost, rád se to dozvím. Předem díky.
Enyeus
Profil
Jednodušší a rychlejší je jenom do DB
mckay
Profil
Radek Cvek:
Pokud chceš cokoliv ukládat do databáze (jako to chceš v obou případech), není důvod, proč tam neuložit ten text, místo jen názvu souboru. Podívej se na to z pohledu toho co ten skript zpracovává:

Spoj se s databázi - načti jméno souboru - otevři soubor - vypiš soubor (pokud ukládáš pouze název)

Spoj se s databází - načti data - vypiš data (pokud ukládáš text do databáze)

A řekl bych, že ještě rychlejší by bylo:

Otevři soubor - vypiš data
Radek Cvek
Profil *
mckay:
Otevři soubor - vypiš data může být naopak i nejpomalejší - když budu třídit / hledat podle data nebo nadpisu.
Ukládání názvu souboru do databáze se teda nikomu nelíbí ? Tak volím ten text do databáze.
Taps
Profil
Radek Cvek:
Ukládání názvu souboru do databáze se teda nikomu nelíbí
To opravdu ne.
mckay
Profil
Radek Cvek:
Tak volím ten text do databáze.
Dozajista správná volba - volí to totiž dnes všichni.:)

databáze se teda nikomu nelíbí ?
Pozor na ten otazník.
Radek Cvek
Profil *
a nakonec, aby to bylo úplně jinak, toto píšou na LINUXSOFTu:
"...Jestliže se pokusíte uložit do pole BLOB (text) více dat, než kolik je toto pole schopno pojmout, přebytečná data budou oříznuta. Obecně je používání polí BLOB dosti dvojsečné; databáze tím může narůst a ztratit na výkonu. Často se proto používá technika, kdy jsou obsahy polí BLOB (nebo CLOB) uloženy v souborech operačního systému a databáze na ně obsahuje pouze odkazy."
viz.:Článek na LINUXSOFTu
t4nn3r
Profil
Ano , ale datum vydáni je 1.4.2005. To plánujete rozjet velký portál ? Tahání z pevného disku bude teda docela dost náročné, protože se při každém čtení musí znovu načítat adaptér pro práci se soubory. Databáze má sama o sobě nulovou režii, ale i kdyby neměla tak použivané tabulky bude mít nacachované.

Takhle to používají všechny CMS,CRM ... takže s tím asi problém nebude.
Alphard
Profil
[#7] Radek Cvek
BLOB je pro binární data, třeba obrázky. Představu o poměru velikosti obrázků a textů snad máte.
Pro fotogalerii je skutečně vhodné ukládat do databáze informace o obrázku s cestou k němu a obrázek ukládat ve filesystému, články ale určitě do databáze.
Radek Cvek
Profil *
Takže, jestli tomu dobře rozumím, správná odpověď na mou otázku je, že správně zvolený přístup, záleží pouze na objemu dat...
Alphard
Profil
Radek Cvek:
Určitě bych neřekl pouze na objemu, hodně záleží na typu. Obrázek uložený jako soubor už může prohlížeč přímo stahovat, nemusí se už zpracovávat pomocí PHP, nijak se neupravuje, šetří se výkon. Text uložený v souboru budete stejně načítat, třeba zkracovat perex a vkládat do stránky, takže nic neušetříte. Navíc, plánujete hledání ve článcích? Jestli ano, je to další argument pro databázi.

Odpověď na svou otázku jste dostal už v [#2]. Texty se prostě ukládají do databáze. Ve chvíli, kdy bude mít průměrný článek z několika (set) tisít velikost několik (desítek) mega, je čas uvažovat o výkonnější databázi (čísla jsem si vymyslel).
Radek Cvek
Profil *
"...hodně záleží na typu. Obrázek uložený jako soubor už může prohlížeč přímo stahovat, nemusí se už zpracovávat pomocí PHP, nijak se neupravuje, šetří se výkon. Text uložený v souboru budete stejně načítat, třeba zkracovat perex a vkládat do stránky, takže nic neušetříte..." O toto mi celou dobu šlo, díky.

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: