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