Хранение картинок в mysql

Хранение картинок в mysql

У меня частенько спрашивают про то, где лучше хранить изображения в базе данных или в виде обычных файлов, а путь держать уже в базе данных. Конечно, 100% однозначного ответа не существует, однако, своё видение я в этой статье изложу.

На мой взгляд, преимущество хранения изображений в базе данных всего одно: отсутствие противоречий. Например, Вы создали какую-то запись в таблице, у которой есть путь к изображению. А потом это изображение случайно было удалено, в итоге, запись уже без изображения, хотя путь к нему всё равно имеется. Вот этого недостатка хранение изображений в базе данных позволяет избежать.

Теперь разберём явные минусы хранения изображений в БД:

  • Изображение находится в BLOB, а это набор байтов. И чтобы этот набор байтов показать пользователю в виде изображения, придётся хорошенько попотеть с тем же header().
  • Изображения — достаточно ёмкие элементы, извлечь которые задача не из лёгких для всегда ограниченной памяти сервера.
  • Файловая система заточена под работу с файлами, поэтому она гораздо быстрее обработает то же изображение, чем MySQL будет его извлекать из таблицы, а Вы потом ещё будете создавать изображение из байтов.

Исходя из всего этого, мой ответ на вопрос "Стоит ли хранить изображения в БД" — не стоит. Храните в виде обычных файлов, а пути к ним сохраняйте уже в базе данных.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Читайте также:  Телевизоры tcl производитель отзывы

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

Она выглядит вот так:

  • BB-код ссылки для форумов (например, можете поставить её в подписи):
  • Комментарии ( 5 ):

    Можно написать скрипт, что если файл в папке не найден, то выводить картинку с надписью "картинки нет" или ничего не выводить. но это уже совсем другая история

    Используйте функцию file_exists(), она как раз и проверяет наличие файла.

    ". мой ответ на вопрос "Стоит ли хранить изображения в БД" — не стоит. Храните в виде обычных файлов, а пути к ним сохраняйте уже в базе данных. " — самый быстрый и четкий ответ, что я получал на свой вопрос в поисковике )). Спасибо, так делал и теперь буду делать ))

    Здравствуйте, у меня такой вопрос: А что если не хранить запись об изображении в БД (ни в каком виде) а вычислять путем кеширования мд5 id материала. И если файл есть — то выводить? Как по мне не целесообразно делать такую процедуру — выполнение скрипта занимает время. PS в компоненте K2 (для Joomla 1.5) так и реализовано — это для исключения повторения названия файла изображения при добавлении его к материалу

    джумла и работает с "такой" скоростью)

    Для добавления комментариев надо войти в систему.
    Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.

    Copyright © 2010-2020 Русаков Михаил Юрьевич. Все права защищены.

    Читайте также:  Смайлики вконтакте значение таблица

    1. преобразуем картинку в byte

    2. сохраняем картинку
    3. считываем байты из базы
    4. преобразуем байты обратно вкартинку
    а как это сделать я не знаю)

    Лучше всего такая структура:

    папка: 1,2,3,4
    внутри хеш изображения

    в БД хранить ссылки только.

    А лучше использовать такую структуру, есть хеш:

    u34589ddhg9823f.jpg, drgu893h4g3.jpg, dergu8h92304.jpg

    это начало хеша и так и хранить. Почему так? Все просто если у тебя блины на сервере, то в файловой системе проще и быстрее будет находиться путь. Если ssd то вообще пофигу, но количество файлов на папку нужно ограничить, так же как нельзя делать 1 папку с 10000 папок, это плохо сказывается на производительности.

    1) Какой тип поля использовать и вообще как харнится там картинка, в виде набора байтов?

    2) Вопрос, вытекающий из предыдущего, как сделать запрос на вставку и указать это jpg, png, gif и т.д.?

    Ссылка на основную публикацию
    Хорошие характеристики для ноутбука
    На сегодняшний день портативной электроникой никого не удивишь - персональным носимым компьютером имеют право именоваться не только планшеты, плееры и...
    Фото для срисовки легкие но красивые карандашом
    Хотите научиться рисовать, но не знаете с чего начать? Подборка самых простых и легких картинок для срисовки помогут создать красивый...
    Фото для школьной беседы
    Если обычный диалог подразумевает участие только двух пользователей, то в беседу можно позвать нескольких друзей. Эта функция удобна, если нужно...
    Хорошие щетки стеклоочистителя отзывы
    Проверяем щетки стеклоочистителей. На испытаниях — 8 брендов. Сегодня можно определить к себе на службу дворника любой националь… простите, конструкции:...
    Adblock detector