Mysql
 sql >> база данни >  >> RDS >> Mysql

Кога да съхранявате изображения в база данни (mySQL) и кога не? (Свързване на изображение с елемент в базата данни)

Предимства на съхраняването на изображения/блобове в базата данни

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

Недостатъци:

  • Прави вашата база данни и по този начин вашите резервни копия много по-големи (помислете за времето, необходимо за възстановяването й).
  • файловите системи обикновено са по-добри с инкрементално архивиране (освен ако нямате RMAN на Oracle)
  • изображенията не могат да бъдат достъпни от други приложения (напр. WebServer, инструменти за преоразмеряване на изображения, FTP сървър)
  • Изображенията не могат да се разпространяват в мрежа за разпространение на съдържание за балансиране на натоварването в уеб приложение (за да се свали натоварването от сървъра на приложения)
  • Общоприетото мнение е, че извличането от базата данни ще бъде по-бавно.
  • за някои бази данни извличането на blobs може всъщност да намали ефективността на кеша на базата данни (не е така за Oracle, SQL Server и PostgreSQL. Не знам за 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. Изберете най-високите 3 резултата всеки ден за всеки потребител

  2. Въведение в отказоустойчивостта за MySQL репликация - блогът 101

  3. Достъп до базата данни MySQL с помощта на c# на unity?

  4. Използвайте обещание за обработка на връщаната стойност на MySQL в node.js

  5. Използване на OR в LIKE Query в MySQL за сравнение на множество полета