Предимства на съхраняването на изображения/блобове в базата данни
- Съхраняването на изображенията автоматично е част от вашите транзакции
- Няма нужда да почиствате файловата система и да я синхронизирате с базата данни
- Достъпът до изображенията се контролира чрез същите средства като достъпа до останалите данни
- Само едно резервно копие, което да ви интересува
- База данни обикновено е по-подходяща за съхранявани милиони (ако не и милиарди) записи. Във файловата система трябва да намерите умно разпределение в няколко директории. Една директория няма да може да обработва милиони файлове ефективно.
- За някои натоварвания съхраняването на изображенията в базата данни всъщност може да бъде по-бързо.
За SQL Server Microsoft всъщност тества това:
http://research.microsoft.com/apps/pubs/default.aspx?id=64525
Не бих се учудил, ако други бази данни се държат по подобен начин.
Недостатъци:
- Прави вашата база данни и по този начин вашите резервни копия много по-големи (помислете за времето, необходимо за възстановяването й).
- файловите системи обикновено са по-добри с инкрементално архивиране (освен ако нямате RMAN на Oracle)
- изображенията не могат да бъдат достъпни от други приложения (напр. WebServer, инструменти за преоразмеряване на изображения, FTP сървър)
- Изображенията не могат да се разпространяват в мрежа за разпространение на съдържание за балансиране на натоварването в уеб приложение (за да се свали натоварването от сървъра на приложения)
- Общоприетото мнение е, че извличането от базата данни ще бъде по-бавно.
- за някои бази данни извличането на blobs може всъщност да намали ефективността на кеша на базата данни (не е така за Oracle, SQL Server и PostgreSQL. Не знам за MySQL обаче)