Osobiście polecam przechowywać obrazy w bazie danych. Oczywiście to zarówno zalety, jak i wady.
Zalety przechowywania danych BLOB w bazie danych:
- Łatwiej jest zachować synchronizację danych BLOB z pozostałymi elementami w rzędzie.
- Dane BLOB są archiwizowane w bazie danych. Posiadanie jednego systemu przechowywania może ułatwić administrację.
- Do danych BLOB można uzyskać dostęp poprzez obsługę XML w MySQL, która może zwracać zakodowaną w bazie 64 reprezentację danych w strumieniu XML.
- Operacje MySQL Full Text Search (FTS) mogą być wykonywane na kolumnach, które zawierają dane znaków o stałej lub zmiennej długości (w tym Unicode). Możesz także wykonywać operacje FTS na sformatowanych danych tekstowych zawartych w polach graficznych — na przykład dokumentach Microsoft Word lub Microsoft Excel.
Wady przechowywania danych BLOB w bazie danych:
Uważnie zastanów się, jakie zasoby mogą być lepiej przechowywane w systemie plików, a nie w bazie danych. Dobrymi przykładami są obrazy, do których zwykle odwołuje się HTTP HREF. Dzieje się tak, ponieważ:
- Pobieranie obrazu z bazy danych wiąże się ze znacznym obciążeniem w porównaniu do korzystania z systemu plików.
- Przechowywanie na dyskach w bazach danych SAN jest zazwyczaj droższe niż przechowywanie na dyskach używanych w farmach serwerów sieci Web.