![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как правильнее не раздувая базу, хранить в ней множество картинок
TheEd © (2009-05-29 16:10:00)Уважаемые мастера!
Хочу услышать Ваше мнение. Есть БД (FireBird), сервер и база в сети. В базе есть, к примеру, таблица User'ы, в которой поле Foto.
Так вот юзвери могут (и часто так делают) приность фотки с цифровиков, которые по 2-3 метра весят. Это ж если юзверей будет 500, то база полтора Гига?!
Как правильнее сделать в такой ситуации, чтобы основную базу не раздувать?
У самого на уме несколько вариантов:
1. Создать отдельную базу для картинок или таблицу во внешнем файле.
2. Автоматически пережимать картинки при загрузке (гемор)
3. Создать трёхзвенку, и хранить файлы отдельно в файловой структуре сервера, а в базе хранить только их имена.
Жду умных мыслей! :)
Anatoly Podgoretsky (2009-06-01 21:05:00) [1]Конечно не обращать, от того что база будет меньше - это не уменьшает общий размер на диске, но усложняет работу с базой, к тому же за счет надежности и безопасности.
TheEd (2009-06-01 08:26:00) [2]Всем спасибо, выводы сделал:
1. При загрузке пикчур пережимать и резать разрешение.
2. Не обращать внимания на размер базы.
Anatoly Podgoretsky (2009-05-31 12:52:00) [3]Это для BMP, для JPEG на порядок или более пользователей потребуется более.
Anatoly Podgoretsky (2009-05-31 12:49:00) [4]400*600 всего лишь 720 kb даже для BMP, не говоря уже об JPG и на 500 пользователей всего лишь 360 мб, для 500 гб нужно 700 000 польвателей и без разницы в базе или из вне это хранится, во втором случае усложняется обработка и снижается целостность данных.
Игорь Шевченко (2009-05-30 20:31:00) [5]
> Так вот юзвери могут (и часто так делают) приность фотки
> с цифровиков, которые по 2-3 метра весят. Это ж если юзверей
> будет 500, то база полтора Гига?!
И че ?
> 2. Автоматически пережимать картинки при загрузке (гемор)
только так и надо
> Беда в том, что на будущее предполагается хранить не только
> фото, но и более "массивные" вещи напр. личные файлы, которые
> могут быть произвольными (напр. наработка юзера в вёрде
> с пикчурзами метров на 100 :)
И че ?
У тебя в чем проблема-то ?
> Хотелось бы получить нечто типа TheBat'а - как он в базе
> хранит почтовые вложения
До сих пор Bat хранил вложения в папке в виде файлов - новые версии хранят в базе ? В какой ?
Если тебе кто посоветует хранить данные базы в виде файлов отдельно от базы - назови этого человека глупцом и не слушай его советов.
PEAKTOP (2009-05-30 12:10:00) [6]> Так вот, если БД разрастётся до к примеру 500 гигов, сервак
> не заколбасит от этого? ;)
Есть такая ERP-система http://avarda.ru/.Они на сайте в тест-драйве про базы размером в 25ТБ рассказывают. Причин им не верить - нет, т.к. такую базу они показывали на стенде на всероссийской выставке производителей ERP-систем.
PEAKTOP (2009-05-30 12:06:00) [7]> Как правильнее сделать в такой ситуации, чтобы основную
> базу не раздувать?
При загрузке фотографии в базу создавать маленькую по размерам Preview и пихать ее в базу, а саму фотографию оригинального размера хранить отдельно на винте. В базе хранить имена внешних файлов.
Sergey13 (2009-05-29 16:57:00) [8]> [8] TheEd (29.05.09 16:49)
> Так вот, если БД разрастётся до к примеру 500 гигов
Василий Иванович,а в мировом масштабе можешь? (с) Петька
8-)
clickmaker (2009-05-29 16:53:00) [9]> [8] TheEd (29.05.09 16:49)
сжимать можно на лету. С помощью того же TJpegImage или StretchBlt, если скорость не особо критична
TheEd (2009-05-29 16:49:00) [10]
> > то база полтора Гига?!Ну и что? Сотрешь какой нибудь фильм
> и места освободится еще столько же. 8-)
Проблема не в месте, и фильмы на серваке не храню :)
Просто не хочется раздувать базу, в которой фотки - не основные данные. Хотелось бы ещё знать, насколько устойчив FB при работе с подобными пухлымибазами. Пользователей кстати может быть и гораздо больше - их каждый год может по 2-3 сотни добавляться. Так вот, если БД разрастётся до к примеру 500 гигов, сервак не заколбасит от этого? ;)
Sergey13 (2009-05-29 16:41:00) [11]> [0] TheEd (29.05.09 16:10)
> то база полтора Гига?!
Ну и что? Сотрешь какой нибудь фильм и места освободится еще столько же. 8-)
> 2. Автоматически пережимать картинки при загрузке (гемор)
В чем гемор то? Полно пакетных конвертеров. Да и пользователи не каждый день фоты меняют.
TheEd (2009-05-29 16:39:00) [12]
> и если размер больше, то не грузить.
ото ж!
> Хранить в файловой можно и без трехзвенки.
плиз как?
напоминаю, субд - Firebird.
Кстати, внешние таблицы с BLOB-полями создавать не позволяет...
> Самый правильный - автоматом уменьшать формат.
Ок, согласен. А как быть с этим:
> Беда в том, что на будущее предполагается хранить не только
> фото, но и более "массивные" вещи напр. личные файлы, которые
> могут быть произвольными (напр. наработка юзера в вёрде
> с пикчурзами метров на 100 :)
Нат (2009-05-29 16:26:00) [13]Зависит от цели, что это за фото и зачем.
Может чем больше разрешение тем лучше...
Самый простой ограничить формат
> например, 240х180
и если размер больше, то не грузить.
Хранить в файловой можно и без трехзвенки.
Самый правильный - автоматом уменьшать формат.
sniknik (2009-05-29 16:25:00) [14]> 3. Создать трёхзвенку
не обязательно, можно наверное обойтись внешними процедурами/функциями, если база позволяет.
TheEd (2009-05-29 16:22:00) [15]
> Ввести формат фото: например, 240х180
да тоже не выход: 240х180 мало, хотя бы 400х600, и это пол беды. Беда в том, что на будущее предполагается хранить не только фото, но и более "массивные" вещи напр. личные файлы, которые могут быть произвольными (напр. наработка юзера в вёрде с пикчурзами метров на 100 :)
Хотелось бы получить нечто типа TheBat'а - как он в базе хранит почтовые вложения. Но блин базу дуть не хочецца...
Сам склоняюсь к 3 варианту. Если кто имеет опыт разработки подобных вещей, поделитесь мыслями
sniknik (2009-05-29 16:22:00) [16]можно использовать mssql 2008, там как читал, появился специальный блоб тип который не хранится в базе, а хранится в файлах в специальной папке, в базе только ссылка на файл. никаких других изменений по работе с ним от обычного блоба нет.
ну или можно самому организовать подобное на более ранних версиях/других типах баз.
Ega23 (2009-05-29 16:14:00) [17]4. Ввести формат фото: например, 240х180