Ne přirozeně, ale pokud máte velké objekty BLOB, které ucpávají tabulky a mezipaměť, bude to mít za následek snížení výkonu.
Ano, toto je běžný přístup. Obvykle byste udělali něco jako mít složky pojmenované podle každé tabulky, ke které jsou přidruženy, obsahující názvy souborů založené pouze na primárním klíči (ideálně celé číslo; rozhodně nikdy nic, co by zadal uživatel).
Je to lepší nápad? Záleží. Existují výhody jednoduchosti nasazení, kdy máte pouze jedno úložiště dat a nemusíte se starat o to, abyste dali webovému uživateli přístup k zápisu k čemukoli. Také pokud může být spuštěno více kopií aplikace (např. aktivní-aktivní vyrovnávání zátěže), pak musíte synchronizovat úložiště, což je mnohem jednodušší s databází než se souborovým systémem.
Pokud používáte souborový systém spíše než blob, pak je otázkou, zda přimějete webový server, aby jej obsluhoval nasměrováním aliasu na složku?
- + je super rychlý
- + se dobře ukládá do mezipaměti
- - extra konfigurace serveru:virtuální adresář; potřebuje příslušnou příponu souboru, aby vrátil požadovaný
Content-Type
- - další konfigurace serveru:je třeba přidat
Content-Disposition: attachment
/X-Content-Type-Options
hlavičky, aby IE v rámci anti-XSS opatření zastavilo čichání HTML
nebo obsluhujete soubor ručně tak, že jej skript na straně serveru vyplivne, jako byste museli obsluhovat z MySQL blob?
- - je potenciálně pomalý
- – ke správnému uložení do mezipaměti potřebuje trochu ručního zpracování If-Modified-Since a ETag
- + může používat vlastní metody řízení přístupu aplikace
- + snadné přidání správných záhlaví Content-Type a Content-Disposition ze skriptu poskytování
Toto je kompromis, na který neexistuje žádná celosvětově uznávaná odpověď.