Php: Сохранить изображение в Mysql blob, хорошо или плохо?
этот вопрос меня смущает, поэтому я думал, что должен слушать экспертный голос!
лучше ли загружать изображения в папку и просто сохранять ссылку на mysql или лучше загружать img в поле blob mysql?
Большое спасибо
Ответы
Ответ 1
Я часто создавал системы для хранения изображений в базе данных, есть плюсы и минусы этого.
Плюсы:
- Все ваши данные хранятся в одном месте, если вы переносите свой веб-сайт/базу данных, изображения будут только там.
- Легче сортировать/удалять/etc...
- Поскольку вы должны обслуживать его с помощью PHP script, вы можете выполнять дополнительные функции, такие как безопасность, если требуется, или обработку изображений (очевидно, вы можете сделать это и с плоским файлом, но вы должны убедиться, что безопасность не подходит обойти, оставив изображения в общедоступном каталоге).
Минусы:
- Его медленнее, чем обслуживать плоский файл с веб-сервера в качестве PHP script, нужно его восстановить, а MySQL нужно вернуть данные.
- Ваша база данных станет очень большой, и не все веб-хосты слишком любезно относятся к этому.
- Файловая система работает быстрее для хранения и извлечения файлов, так как именно для нее предназначена файловая система.
Ответ 2
Bad. Ваш веб-сервер выполняет гораздо более эффективную работу с заголовками истечения срока действия и напрямую загружает файлы из файловой системы. Пропускная способность будет намного выше, используя файловую систему. Это то, для чего оно предназначено, и использовать его.
Базы данных SQL предназначены для реляционных данных, а не для изображений. Вы просто загружаете свою базу данных без необходимости. Сохраните имя пути/изображения.
Ответ 3
Если ваше приложение велико, то вам нужно многократно отображать большое количество/размер изображений, тогда вы должны перейти на первый метод (сохраняя только путь к изображению в базе данных и фактические изображения в файловой системе). Это уменьшит время обработки, чтобы отображать изображения, кроме того, потребляет меньше ресурсов. Во-вторых, если вашему приложению требуется меньше изображений, вы можете хранить их непосредственно в базе данных. Таким образом становится проще брать резервные копии и приложение на другое ОС.