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

Kdy ukládat obrázky do databáze (mySQL) a kdy ne? (Propojení obrázku s položkou v databázi)

Výhody ukládání obrázků/blobů do databáze

  • Ukládání obrázků je automaticky součástí vašich transakcí
  • Není třeba čistit systém souborů a synchronizovat jej s databází
  • Přístup k obrázkům je řízen stejnými prostředky jako přístup ke zbytku dat
  • Pouze jedna záloha, o kterou se můžete starat
  • Databáze je obvykle vhodnější pro uložený milion (ne-li miliardy) záznamů. V souborovém systému musíte najít chytrou distribuci do několika adresářů. Jediný adresář nebude schopen efektivně zpracovat miliony souborů.
  • U některých úloh může být ukládání obrázků do databáze ve skutečnosti rychlejší.
    Pro SQL Server Microsoft skutečně testoval toto:
    http://research.microsoft.com/apps/pubs/default.aspx?id=64525
    Nepřekvapilo by mě, kdyby se ostatní databáze chovaly podobně.

Nevýhody:

  • Vaše databáze a tím i zálohy jsou mnohem větší (vzpomeňte si na čas, který zabere její obnovení).
  • Souborové systémy jsou obvykle lepší s přírůstkovým zálohováním (pokud nemáte Oracle RMAN)
  • k obrázkům nemají přístup jiné aplikace (např. webový server, nástroje pro změnu velikosti obrázků, server FTP)
  • Obrázky nelze šířit v distribuční síti obsahu za účelem vyrovnávání zátěže ve webové aplikaci (snížení zátěže aplikačního serveru)
  • Obvyklý názor je, že načítání z databáze bude pomalejší.
  • u některých databází může načítání objektů blob ve skutečnosti snížit efektivitu mezipaměti databáze (ne tak pro Oracle, SQL Server a PostgreSQL. U MySQL však nevím)


  1. Rails na OSX 10.11 El Capitan:Knihovna nenačtena:libmysqlclient.18.dylib

  2. Hibernate Criteria Query pro získání konkrétních sloupců

  3. Jak mohu získat cizí klíče tabulky v mysql

  4. group_concat a jak používat číslo řádku ve sqlite