powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Хранение фотографий в БД Firebird 2.5
25 сообщений из 48, страница 1 из 2
Хранение фотографий в БД Firebird 2.5
    #39958233
FIL23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго дня,

Хочу услышать мнение по поводу хранения фотографий (штук 300-600, каждая по 2 мега) в БД Firebird 2.5.

Знаю что можно реализовать хранение в виде файлов в какой ни будь шаре и ссылке на ней. Но так же хотелось бы мнение по поводу быстродействия БД если она будет в себе держать такие данные в отдельной таблице.

Спасибо.
...
Рейтинг: 0 / 0
Хранение фотографий в БД Firebird 2.5
    #39958251
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FIL23
штук 300-600, каждая по 2 мега
Когда надо будет 300 тыс, можно потрындеть. Когда 300 млн заходи - обсудим.
...
Рейтинг: 0 / 0
Хранение фотографий в БД Firebird 2.5
    #39958254
GrigoriyFomin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
FIL23,

57 тыщ картинок в базе, 15 гигов файл - полет нормальный
...
Рейтинг: 0 / 0
Хранение фотографий в БД Firebird 2.5
    #39958261
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
FIL23,

у нас продукт в продаже есть, массово хранит документы примерно такого объема, в т.ч. и картинки.
FB 2.0, до сих пор не апгрейдили.
На быстродействие сервера не жалуемся, тормоза случаются на клиенте - после загрузки, документ иногда обрабатывается сложным образом.
Про хранение в "шаре" думали, но делать не стали - и так завелось, чего ещё мудрить. Fib+. До 300 пользователей (в самом тяжелом случае).
...
Рейтинг: 0 / 0
Хранение фотографий в БД Firebird 2.5
    #39958273
FIL23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GrigoriyFomin
FIL23,

57 тыщ картинок в базе, 15 гигов файл - полет нормальный


Я вас понял.

Значит мне беспокоиться не о чем.
...
Рейтинг: 0 / 0
Хранение фотографий в БД Firebird 2.5
    #39958286
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сейчас храню картинки в самбовой шаре. Примерно 500тысяч файлов, примерно 15Гигов.
Структура так устроена что картинки хранятся всего в трех папках.
Это создает некоторые проблемы. Например скопировать такое хранилище обычными инструментами - капец как долго. Приходится извращаться. Ну и выполнить синхронизацию в филиалы - тоже не очень удобно. Сейчас делаю это через FreeFileSync.

Задумываюсь над переносом картинок внутрь базы. Скорее всего это будет отдельная, не там где документы и все прочее.
У меня уже есть отдельная база, для выгрузки длинных логов. Часть в рабочей базе, примерно год, а более старые выгружаю в отдельную.

В основной базе в таблице хранятся параметры - строка коннекта к базе логов. Т.е. при настройке клинта достаточно указать строку коннекта к основной базе, остальное он посмотрит уже в ней. Сейчас таким образом клиент узнает путь к самбовой шаре с картинками, ну а будет узнавать строку коннекта и логин/пароль к базе с картинками.
...
Рейтинг: 0 / 0
Хранение фотографий в БД Firebird 2.5
    #39958293
FIL23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fraks

Это создает некоторые проблемы. Например скопировать такое хранилище обычными инструментами - капец как долго. Приходится извращаться. Ну и выполнить синхронизацию в филиалы - тоже не очень удобно. Сейчас делаю это через FreeFileSync.
.


попробуйте rsync
...
Рейтинг: 0 / 0
Хранение фотографий в БД Firebird 2.5
    #39958297
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FIL23
Значит мне беспокоиться не о чем.
Не с такими объемами. :)
У нас база с картинками под 250 гиг, не знаю сколько там сканкопий, лень считать.
...
Рейтинг: 0 / 0
Хранение фотографий в БД Firebird 2.5
    #39958470
Gorynich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По теме, но не про Firebird можно почитать статью (2006 год) на MS
Код: plaintext
To BLOB or Not To BLOB: Large Object Storage in a Database or a Filesystem?
...
Рейтинг: 0 / 0
Хранение фотографий в БД Firebird 2.5
    #39958686
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FIL23
fraks

Это создает некоторые проблемы. Например скопировать такое хранилище обычными инструментами - капец как долго. Приходится извращаться. Ну и выполнить синхронизацию в филиалы - тоже не очень удобно. Сейчас делаю это через FreeFileSync.
.

попробуйте rsync

Если с линуха на линух - то rsync работает хорошо.
Однако, под винду реализацию rsync я нашел только одну, а у нее при большом количестве файлов через несколько сотен файлов возникают какие-то зависания на минуты. Потом проходят, и потом опять по тому же циклу. В итоге общая скорость синхронизации падает до совершенно неприемлемых значений.
...
Рейтинг: 0 / 0
Хранение фотографий в БД Firebird 2.5
    #39958779
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FIL23
Знаю что можно реализовать хранение в виде файлов в какой ни будь шаре и ссылке на ней.
Зачем ссылки?
Можно использовать UDF/UDR для подтягивания в СУБД файлов с файловой системы в виде BLOb по реферальной таблице "идентификатор<=>путь_ФС".
...
Рейтинг: 0 / 0
Хранение фотографий в БД Firebird 2.5
    #39958997
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rdb_dev
FIL23
Знаю что можно реализовать хранение в виде файлов в какой ни будь шаре и ссылке на ней.
Зачем ссылки?
Можно использовать UDF/UDR для подтягивания в СУБД файлов с файловой системы в виде BLOb по реферальной таблице "идентификатор<=>путь_ФС".

А в чем тогда профит "внешнего" хранения? В "шаре" картинки напрямую прикладным приложением открывать можно, а тут - для чего?
...
Рейтинг: 0 / 0
Хранение фотографий в БД Firebird 2.5
    #39959145
Шавлюк Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ,

Например быстрее и значительно меньше бекап?
...
Рейтинг: 0 / 0
Хранение фотографий в БД Firebird 2.5
    #39959153
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Шавлюк Евгений
ъъъъъ,

Например быстрее и значительно меньше бекап?

Огромный массив картинок - отдельно, маленький файл базы - отдельно?
Наверное, очень удобно бэкап огромного массива делать, предварительно выгнав юзеров.
Хотя, можно забить на консистентность и не выгонять.
...
Рейтинг: 0 / 0
Хранение фотографий в БД Firebird 2.5
    #39959177
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ, если идентификатор картинки, это UUID, то с консистентностью, обычно, проблем не возникает. Можно даже реализовать дедупликацию картинок, если хранить в этой же таблице значение хэш-функции от картинки и при совпадении значения хэш-функции загружаемой картинки делать побайтное сравнение. Нормальный подход, широко применяемый в big data.
...
Рейтинг: 0 / 0
Хранение фотографий в БД Firebird 2.5
    #39959179
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rdb_dev
обычно
...
Рейтинг: 0 / 0
Хранение фотографий в БД Firebird 2.5
    #39959183
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ, ну, если не напортачишь и если БД на том же носителе, что и картинки, а не где-то в сети на периодически недоступном ресурсе, типа сильно территориально удалённого тома iSCSI. ;)
...
Рейтинг: 0 / 0
Хранение фотографий в БД Firebird 2.5
    #39959184
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rdb_dev
если не напортачишь

Тогда да.
...
Или просто хранишь в блобах и не паришься о глупостях.
...
Рейтинг: 0 / 0
Хранение фотографий в БД Firebird 2.5
    #39959198
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ,

в основном критерии по хранению файлов в файлах или блобах такие
- накладные расходы на вытаскивание файла из блоба или из файла файловой системы
- транзакционность блобов в отличие от файлов

по второму пункту есть миф о том, что при модификации части блоба модифицируется только изменяемая часть. Но увы, это не так - в Firebird модифицируется весь блоб целиком (даже если мы говорим про array, который тоже blob). Потому что версионность, и надо держать старую версию блоба и новую. А если для версий записей есть дельты, то для блобов дельт нет. Хоть байт изменился - будет записан весь блоб по новой (и будет храниться до определенного времени старый блоб со старой версией записи).

как-то так.
...
Рейтинг: 0 / 0
Хранение фотографий в БД Firebird 2.5
    #39959204
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kdv,

я храню файлы в блобах, и ни о каких модификациях по частям я ни разу не задумывался: не было надобности.

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

Выше написано, что бэкап будет "компактнее" или быстрее. Почему компактнее - неясно, те же картинки обычно уже хорошо упакованы, то есть практически несжимаемы. Некоторые типы файлов хорошо сжимаются - в базе такие блобы помечаются флагом IS_COMPRESSED, клиент их на лету сжимает/распаковывает. То есть, насчет "компактности" файлов вопрос открыт. Можно придумать какие-то схемы инкрементальных бэкапов, но, повторюсь, все они требуют дополнительных телодвижений с неизбежными глюками, а я использую готовые, давно отлаженные, "встроенные" средства Firebird.
У клиентов тупо каждые несколько часов запускается процедура формирования бэкапа, без прерывания работы, в фоне. Вместо использования отлаженного разработчиками FireBird механизма, потратить сколько-то ресурсов для создания велосипеда, из-за которого запросто можно потерять данные, из-за которого придется создавать неудобства в работе клиентов?
..."общая шара" мне категорически не нравится по причинам, завязанным конкретно на мои задачи, хотя возможный профит я назвал.
..."использовать UDF/UDR" для трансляции клиентам "внешнего" файла - это что даст, в каком месте и за счет чего улучшение будет?

Кроме гипотетически "удобного, быстрого и компактного" бэкапа, ничего не названо.

Все ещё интересно "соотношение накладных расходов по вытаскиванию файлов vs вытаскивание блоба". Каково это соотношение? Ну вот, у меня на клиенте - редактор MSWord, я даже не знаю, сколько времени файл вытягивается из блоба, MSWord точно дольше запускается. Если блоб станет загружаться в два раза быстрее - что изменится?

Может быть, плюсы "внешнего" хранения станут заметны в каких-то особых случаях?
...
Рейтинг: 0 / 0
Хранение фотографий в БД Firebird 2.5
    #39959205
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ,

я бы сказал, что "внешнее" хранение файлов в базе облегчилось бы, если бы в ФБ ввели tablespaces (как в IB 2020). Тогда, как минимум, можно было бы бэкапить отдельно tablespace основной базы и блобов.
Вообще, для меня хранение файлов в базе или вовне определяется связанностью информации в этих самых файлах с данными в БД.
Если это фото пользователей, договоры, документы, их сканы, автобиографии и проч, то хотелось бы иметь это в базе (хотя и в отдельном tablespace).
Если же просто задача некий набор картинок "организовать", тогда нунах, файлы отдельно, а в базе - ссылки на эти файлы.
...
Рейтинг: 0 / 0
Хранение фотографий в БД Firebird 2.5
    #39959212
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kdv,

ну, мы просто попробовали хранить документы базе, все сразу и "взлетело", и всё, с тех пор мы в птичку всякий хлам пихаем. Ещё с беты 2.0.
Альтернатива, наверное, была, мы что-то даже обсуждали, но, раз все сразу завелось "и так" - так нафига себе лишние проблемы придумывать?
...
Рейтинг: 0 / 0
Хранение фотографий в БД Firebird 2.5
    #39959221
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ
rdb_dev
пропущено...
Зачем ссылки?
Можно использовать UDF/UDR для подтягивания в СУБД файлов с файловой системы в виде BLOb по реферальной таблице "идентификатор<=>путь_ФС".

А в чем тогда профит "внешнего" хранения? В "шаре" картинки напрямую прикладным приложением открывать можно, а тут - для чего?

На сервере не нужно делать иной доступ к файлам на шаре, типа самба не нужна. Достаточно только коннекта к базе.
Соответственно не нужно администрировать этот иной доступ.
Руление правами через базу а не в самбе.
Уменьшение размера бэкапа, соответственно и времени бэкапа и рестора.

Например у меня база 16Гигов, и картинок снаружи примерно так же.
...
Рейтинг: 0 / 0
Хранение фотографий в БД Firebird 2.5
    #39959223
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fraks
Уменьшение размера бэкапа

За счет чего? Бэкапим только файл базы, без картинок?
...
Рейтинг: 0 / 0
Хранение фотографий в БД Firebird 2.5
    #39959285
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ
fraks
Уменьшение размера бэкапа

За счет чего? Бэкапим только файл базы, без картинок?

Естественно.
...
Рейтинг: 0 / 0
25 сообщений из 48, страница 1 из 2
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Хранение фотографий в БД Firebird 2.5
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]