Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Kiedy przechowywać obrazy w bazie danych (mySQL), a kiedy nie? (Łączenie obrazu z elementem w bazie danych)

Zalety przechowywania obrazów/blobów w bazie danych

  • Przechowywanie obrazów jest automatycznie częścią Twoich transakcji
  • Nie ma potrzeby czyszczenia systemu plików i synchronizowania go z bazą danych
  • Dostęp do obrazów jest kontrolowany za pomocą tych samych środków, co dostęp do pozostałych danych
  • Tylko jedna kopia zapasowa, o którą należy dbać
  • Baza danych zwykle lepiej nadaje się do przechowywania milionów (jeśli nie miliardów) rekordów. W systemie plików musisz znaleźć sprytną dystrybucję na kilka katalogów. Pojedynczy katalog nie będzie w stanie efektywnie obsłużyć milionów plików.
  • W przypadku niektórych obciążeń przechowywanie obrazów w bazie danych może być faktycznie szybsze.
    W przypadku programu SQL Server firma Microsoft faktycznie przetestowała to:
    http://research.microsoft.com/apps/pubs/default.aspx?id=64525
    Nie zdziwiłbym się, gdyby inne bazy danych zachowywały się w podobny sposób.

Wady:

  • Sprawia, że ​​baza danych, a tym samym kopie zapasowe, są znacznie większe (pomyśl o czasie potrzebnym na jej przywrócenie).
  • Systemy plików są zwykle lepsze z przyrostowymi kopiami zapasowymi (chyba że masz RMAN Oracle)
  • do obrazów nie mogą uzyskać dostępu inne aplikacje (np. serwer WWW, narzędzia do zmiany rozmiaru obrazu, serwer FTP)
  • Obrazy nie mogą być rozpowszechniane w sieci dystrybucji treści w celu równoważenia obciążenia w aplikacji internetowej (aby odciążyć serwer aplikacji)
  • powszechne przekonanie jest takie, że pobieranie z bazy danych będzie wolniejsze.
  • w przypadku niektórych baz danych pobieranie blobów może w rzeczywistości zmniejszyć wydajność pamięci podręcznej bazy danych (nie dotyczy to Oracle, SQL Server i PostgreSQL. Nie znam jednak MySQL)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. zaktualizuj dane w div

  2. Dlaczego Railsy dodają `OR 1=0` do zapytań używając składni hash klauzuli WHERE z zakresem?

  3. Zapytanie MySQL do wybrania danych z zeszłego tygodnia?

  4. php i mysql kopiują rekord z jednej tabeli do drugiej

  5. jak uzyskać pojedynczą wartość z tablicy w codeigniter