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

Кой е най-добрият начин за съхраняване на потребителски изображения с помощта на PHP и MySQL?

„Най-доброто“ зависи от целта ви.

Двата основни начина за съхраняване на качени от потребителя изображения са или поставяне на двоичното съдържание в базата данни като BLOB, или съхраняване на изображенията някъде на устройството и поставяне на запис в базата данни, указващ кое изображение къде принадлежи.

Поставянето на изображенията в базата данни има предимството, че не изисква никакви разрешения за файлова система на уеб сървъра и премахва всякакви проблеми със синхронизирането, ако обслужвате сайта извън множество уеб сървъри. Въпреки това, с течение на времето това прави вашата база данни огромна и ако не проектирате правилно таблиците си, това може абсолютно да убие вашата производителност и мащабируемост.

Съхраняването на изображенията като файл във файловата система има допълнителното предимство, че прави извличането изключително бързо и ефективно, тъй като уеб сървърите са много добри в обслужването на статични файлове.

Редактирано за добавяне

Ако решите да съхранявате файлово съдържание в базата данни, абсолютно не го поставяйте в таблица, която трябва да бъде достъпна бързо. Ако например имате таблица "потребители", която се търси при почти всяко показване на страница, тогава тази таблица не мястото, където да поставите съдържанието на вашия файл. Вместо това създайте отделна таблица с "изображения" или "файлове", съдържаща файла и свързаната с него мета-информация.

Поставянето на много байтове на ред в таблица прави тази таблица много бавна за работа. Не искате такова нещо в таблици, които се използват тежко.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Актуализирайте с помощта на PDO израз

  2. Пример за инжектиране на PHP/MySQL

  3. Актуализирайте формуляра с помощта на Ajax, PHP, MYSQL

  4. Защо получавам „Бинарното регистриране не е възможно“. на моя MySQL сървър?

  5. Кога да затворите курсорите с MySQLdb