Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];

Вниз

Как правильнее не раздувая базу, хранить в ней множество картинок   Найти похожие ветки 

 
TheEd   (2009-05-29 16:10) [0]

Уважаемые мастера!
Хочу услышать Ваше мнение. Есть БД (FireBird), сервер и база в сети. В базе есть, к примеру, таблица User"ы, в которой поле Foto.
Так вот юзвери могут (и часто так делают) приность фотки с цифровиков, которые по 2-3 метра весят. Это ж если юзверей будет 500, то база полтора Гига?!
Как правильнее сделать в такой ситуации, чтобы основную базу не раздувать?
У самого на уме несколько вариантов:
1. Создать отдельную базу для картинок или таблицу во внешнем файле.
2. Автоматически пережимать картинки при загрузке (гемор)
3. Создать трёхзвенку, и хранить файлы отдельно в файловой структуре сервера, а в базе хранить только их имена.

Жду умных мыслей! :)


 
Ega23 ©   (2009-05-29 16:14) [1]

4. Ввести формат фото: например, 240х180


 
sniknik ©   (2009-05-29 16:22) [2]

можно использовать mssql 2008, там как читал, появился специальный блоб тип который не хранится в базе, а хранится в файлах в специальной папке, в базе только ссылка на файл. никаких других изменений по работе с ним от обычного блоба нет.
ну или можно самому организовать подобное на более ранних версиях/других типах баз.


 
TheEd   (2009-05-29 16:22) [3]


> Ввести формат фото: например, 240х180


да тоже не выход: 240х180 мало, хотя бы 400х600, и это пол беды. Беда в том, что на будущее предполагается хранить не только фото, но и более "массивные" вещи напр. личные файлы, которые могут быть произвольными (напр. наработка юзера в вёрде с пикчурзами метров на 100 :)
Хотелось бы получить нечто типа TheBat"а - как он в базе хранит почтовые вложения. Но блин базу дуть не хочецца...
Сам склоняюсь к 3 варианту. Если кто имеет опыт разработки подобных вещей, поделитесь мыслями


 
sniknik ©   (2009-05-29 16:25) [4]

> 3. Создать трёхзвенку
не обязательно, можно наверное обойтись внешними процедурами/функциями, если база позволяет.


 
Нат ©   (2009-05-29 16:26) [5]

Зависит от цели, что это за фото и зачем.
Может чем больше разрешение тем лучше...
Самый простой ограничить формат
> например, 240х180

и если размер больше, то не грузить.
Хранить в файловой можно и без трехзвенки.
Самый правильный - автоматом уменьшать формат.


 
TheEd   (2009-05-29 16:39) [6]


> и если размер больше, то не грузить.

ото ж!


> Хранить в файловой можно и без трехзвенки.

плиз как?
напоминаю, субд - Firebird.
Кстати, внешние таблицы с BLOB-полями создавать не позволяет...


> Самый правильный - автоматом уменьшать формат.

Ок, согласен. А как быть с этим:

> Беда в том, что на будущее предполагается хранить не только
> фото, но и более "массивные" вещи напр. личные файлы, которые
> могут быть произвольными (напр. наработка юзера в вёрде
> с пикчурзами метров на 100 :)


 
Sergey13 ©   (2009-05-29 16:41) [7]

> [0] TheEd   (29.05.09 16:10)
> то база полтора Гига?!

Ну и что? Сотрешь какой нибудь фильм и места освободится еще столько же. 8-)

> 2. Автоматически пережимать картинки при загрузке (гемор)

В чем гемор то? Полно пакетных конвертеров. Да и пользователи не каждый день фоты меняют.


 
TheEd   (2009-05-29 16:49) [8]


> > то база полтора Гига?!Ну и что? Сотрешь какой нибудь фильм
> и места освободится еще столько же. 8-)


Проблема не в месте, и фильмы на серваке не храню :)
Просто не хочется раздувать базу, в которой фотки - не основные данные. Хотелось бы ещё знать, насколько устойчив FB при работе с подобными пухлыми базами. Пользователей кстати может быть и гораздо больше - их каждый год может по 2-3 сотни добавляться. Так вот, если БД разрастётся до к примеру 500 гигов, сервак не заколбасит от этого? ;)


 
clickmaker ©   (2009-05-29 16:53) [9]

> [8] TheEd   (29.05.09 16:49)

сжимать можно на лету. С помощью того же TJpegImage или StretchBlt, если скорость не особо критична


 
Sergey13 ©   (2009-05-29 16:57) [10]

> [8] TheEd   (29.05.09 16:49)
> Так вот, если БД разрастётся до к примеру 500 гигов

Василий Иванович,а в мировом масштабе можешь? (с) Петька
8-)


 
PEAKTOP ©   (2009-05-30 12:06) [11]

> Как правильнее сделать в такой ситуации, чтобы основную
> базу не раздувать?


При загрузке фотографии в базу создавать маленькую по размерам Preview и пихать ее в базу, а саму фотографию оригинального размера хранить отдельно на винте. В базе хранить имена внешних файлов.


 
PEAKTOP ©   (2009-05-30 12:10) [12]

> Так вот, если БД разрастётся до к примеру 500 гигов, сервак
> не заколбасит от этого? ;)


Есть такая ERP-система http://avarda.ru/. Они на сайте в тест-драйве про базы размером в 25ТБ рассказывают. Причин им не верить - нет, т.к. такую базу они показывали на стенде на всероссийской выставке производителей ERP-систем.


 
Игорь Шевченко ©   (2009-05-30 20:31) [13]


> Так вот юзвери могут (и часто так делают) приность фотки
> с цифровиков, которые по 2-3 метра весят. Это ж если юзверей
> будет 500, то база полтора Гига?!


И че ?


> 2. Автоматически пережимать картинки при загрузке (гемор)


только так и надо


> Беда в том, что на будущее предполагается хранить не только
> фото, но и более "массивные" вещи напр. личные файлы, которые
> могут быть произвольными (напр. наработка юзера в вёрде
> с пикчурзами метров на 100 :)


И че ?

У тебя в чем проблема-то ?


> Хотелось бы получить нечто типа TheBat"а - как он в базе
> хранит почтовые вложения


До сих пор Bat хранил вложения в папке в виде файлов - новые версии хранят в базе ? В какой ?

Если тебе кто посоветует хранить данные базы в виде файлов отдельно от базы - назови этого человека глупцом и не слушай его советов.


 
Anatoly Podgoretsky ©   (2009-05-31 12:49) [14]

400*600 всего лишь 720 kb даже для BMP, не говоря уже об JPG и на 500 пользователей всего лишь 360 мб, для 500 гб нужно 700 000 польвателей и без разницы в базе или из вне это хранится, во втором случае усложняется обработка и снижается целостность данных.


 
Anatoly Podgoretsky ©   (2009-05-31 12:52) [15]

Это для BMP, для JPEG на порядок или более пользователей потребуется более.


 
TheEd   (2009-06-01 08:26) [16]

Всем спасибо, выводы сделал:
1. При загрузке пикчур пережимать и резать разрешение.
2. Не обращать внимания на размер базы.


 
Anatoly Podgoretsky ©   (2009-06-01 21:05) [17]

Конечно не обращать, от того что база будет меньше - это не уменьшает общий размер на диске, но усложняет работу с базой, к тому же за счет надежности и безопасности.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.09 c
2-1274530341
Delphist2
2010-05-22 16:12
2010.08.27
method insert класса range завершен неверно


15-1266819424
b/@.
2010-02-22 09:17
2010.08.27
Нужен драйвер USB flash -> DVD-дисковод


2-1271243860
kiligin
2010-04-14 15:17
2010.08.27
Работа с TListView


15-1275738264
Desdechado
2010-06-05 15:44
2010.08.27
Если б человек не мог врать, как изменился бы мир?


15-1268773367
Nic
2010-03-17 00:02
2010.08.27
НДС - непонятно немного





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский