Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Przechowywanie przesłanych obrazów:Czy powinny być przechowywane na serwerze czy w bazie danych?

Tak, możesz używać obiektów BLOB do danych binarnych w Oracle. (I wiele innych baz danych.) Używamy ich tutaj do przechowywania plików PDF.

Widziałem, jak to się robi w obie strony. Przechowuj obrazy w bazie danych lub przechowuj obrazy w systemie plików, a następnie zapisz nazwę pliku w bazie danych.

Zalety przechowywania w bazie danych

Wszystko jest w bazie danych. Wyciągasz płytę, powiązany obraz jest z nią.

Uzyskujesz integralność danych między plikiem a powiązanymi z nim danymi (oczywiście przy założeniu dobrego projektu schematu).

Jedna logiczna operacja, aby uzyskać dane i obraz.

Uważam, że skalowanie bazy danych do przechowywania dużej ilości danych binarnych jest trudniejsze i droższe niż w przypadku alternatywnego systemu plików.

Wady przechowywania w bazie danych

Nie wszystkie narzędzia ułatwiają przeglądanie obrazów.

Nie można łatwo uzyskać dostępu do obrazów z sieci.

W zależności od rozmiaru i ilości pliku, w niektórych tabelach może być dużo surowych danych.

Ładowanie i przechowywanie danych obiektów blob nie zawsze jest proste. (Niedawno napisałem niestandardowy typ danych dla Hibernate, na przykład do obsługi naszych blobowanych plików PDF.)

Zalety systemu plików

Prawdopodobnie bardziej wydajny przy odczytywaniu i zapisywaniu plików.

Jeśli chcesz udostępnić obraz w sieci, możesz to zrobić bezpośrednio z systemu plików.

Łatwiejsze przeglądanie obrazów podczas debugowania i wiele bezpłatnych narzędzi do tego.

Uważam, że łatwiej jest skalować aplikację podczas umieszczania obiektów blob w systemie plików.

Wady systemu plików

Problemy z integralnością/spójnością danych. Zmień coś w strukturze pliku, a będziesz musiał wykonać kolejny krok w bazie danych.

Kopia zapasowa to kolejna rzecz.

Wiele operacji logicznych (odczyt z bazy danych, odczyt z systemu plików) w celu uzyskania obrazu i danych.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Spowodowane przez:java.sql.SQLException:ORA-01795:maksymalna liczba wyrażeń na liście to 1000?

  2. Dostawca Oracle OLE DB nie jest wymieniony w SSIS

  3. Różnica między LockModeType Jpa

  4. Ograniczenie UNIQUE a sprawdzanie przed INSERT

  5. Dane z Oracle w utf-8 z php