sql >> Databáze >  >> RDS >> Mysql

Mám použít typ pole blob MySQL?

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ěď.



  1. Sestavte si kontaktní knihu pomocí Pythonu, PyQt a SQLite

  2. Kdy ukončit připojení MySQL pomocí node-mysql?

  3. MySQL:zkontrolujte, jakou verzi:32bitovou nebo 64bitovou?

  4. SQLite JSON_PATCH()