|
Хранение фотографий в БД Firebird 2.5
|
|||
---|---|---|---|
#18+
Доброго дня, Хочу услышать мнение по поводу хранения фотографий (штук 300-600, каждая по 2 мега) в БД Firebird 2.5. Знаю что можно реализовать хранение в виде файлов в какой ни будь шаре и ссылке на ней. Но так же хотелось бы мнение по поводу быстродействия БД если она будет в себе держать такие данные в отдельной таблице. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2020, 22:32 |
|
Хранение фотографий в БД Firebird 2.5
|
|||
---|---|---|---|
#18+
FIL23 штук 300-600, каждая по 2 мега ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2020, 23:47 |
|
Хранение фотографий в БД Firebird 2.5
|
|||
---|---|---|---|
#18+
FIL23, 57 тыщ картинок в базе, 15 гигов файл - полет нормальный ... |
|||
:
Нравится:
Не нравится:
|
|||
16.05.2020, 00:00 |
|
Хранение фотографий в БД Firebird 2.5
|
|||
---|---|---|---|
#18+
FIL23, у нас продукт в продаже есть, массово хранит документы примерно такого объема, в т.ч. и картинки. FB 2.0, до сих пор не апгрейдили. На быстродействие сервера не жалуемся, тормоза случаются на клиенте - после загрузки, документ иногда обрабатывается сложным образом. Про хранение в "шаре" думали, но делать не стали - и так завелось, чего ещё мудрить. Fib+. До 300 пользователей (в самом тяжелом случае). ... |
|||
:
Нравится:
Не нравится:
|
|||
16.05.2020, 00:21 |
|
Хранение фотографий в БД Firebird 2.5
|
|||
---|---|---|---|
#18+
GrigoriyFomin FIL23, 57 тыщ картинок в базе, 15 гигов файл - полет нормальный Я вас понял. Значит мне беспокоиться не о чем. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.05.2020, 01:44 |
|
Хранение фотографий в БД Firebird 2.5
|
|||
---|---|---|---|
#18+
Сейчас храню картинки в самбовой шаре. Примерно 500тысяч файлов, примерно 15Гигов. Структура так устроена что картинки хранятся всего в трех папках. Это создает некоторые проблемы. Например скопировать такое хранилище обычными инструментами - капец как долго. Приходится извращаться. Ну и выполнить синхронизацию в филиалы - тоже не очень удобно. Сейчас делаю это через FreeFileSync. Задумываюсь над переносом картинок внутрь базы. Скорее всего это будет отдельная, не там где документы и все прочее. У меня уже есть отдельная база, для выгрузки длинных логов. Часть в рабочей базе, примерно год, а более старые выгружаю в отдельную. В основной базе в таблице хранятся параметры - строка коннекта к базе логов. Т.е. при настройке клинта достаточно указать строку коннекта к основной базе, остальное он посмотрит уже в ней. Сейчас таким образом клиент узнает путь к самбовой шаре с картинками, ну а будет узнавать строку коннекта и логин/пароль к базе с картинками. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.05.2020, 10:02 |
|
Хранение фотографий в БД Firebird 2.5
|
|||
---|---|---|---|
#18+
fraks Это создает некоторые проблемы. Например скопировать такое хранилище обычными инструментами - капец как долго. Приходится извращаться. Ну и выполнить синхронизацию в филиалы - тоже не очень удобно. Сейчас делаю это через FreeFileSync. . попробуйте rsync ... |
|||
:
Нравится:
Не нравится:
|
|||
16.05.2020, 10:47 |
|
Хранение фотографий в БД Firebird 2.5
|
|||
---|---|---|---|
#18+
FIL23 Значит мне беспокоиться не о чем. У нас база с картинками под 250 гиг, не знаю сколько там сканкопий, лень считать. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.05.2020, 11:02 |
|
Хранение фотографий в БД Firebird 2.5
|
|||
---|---|---|---|
#18+
По теме, но не про Firebird можно почитать статью (2006 год) на MS Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
16.05.2020, 22:30 |
|
Хранение фотографий в БД Firebird 2.5
|
|||
---|---|---|---|
#18+
FIL23 fraks Это создает некоторые проблемы. Например скопировать такое хранилище обычными инструментами - капец как долго. Приходится извращаться. Ну и выполнить синхронизацию в филиалы - тоже не очень удобно. Сейчас делаю это через FreeFileSync. . попробуйте rsync Если с линуха на линух - то rsync работает хорошо. Однако, под винду реализацию rsync я нашел только одну, а у нее при большом количестве файлов через несколько сотен файлов возникают какие-то зависания на минуты. Потом проходят, и потом опять по тому же циклу. В итоге общая скорость синхронизации падает до совершенно неприемлемых значений. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2020, 21:06 |
|
Хранение фотографий в БД Firebird 2.5
|
|||
---|---|---|---|
#18+
FIL23 Знаю что можно реализовать хранение в виде файлов в какой ни будь шаре и ссылке на ней. Можно использовать UDF/UDR для подтягивания в СУБД файлов с файловой системы в виде BLOb по реферальной таблице "идентификатор<=>путь_ФС". ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2020, 09:17 |
|
Хранение фотографий в БД Firebird 2.5
|
|||
---|---|---|---|
#18+
rdb_dev FIL23 Знаю что можно реализовать хранение в виде файлов в какой ни будь шаре и ссылке на ней. Можно использовать UDF/UDR для подтягивания в СУБД файлов с файловой системы в виде BLOb по реферальной таблице "идентификатор<=>путь_ФС". А в чем тогда профит "внешнего" хранения? В "шаре" картинки напрямую прикладным приложением открывать можно, а тут - для чего? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2020, 16:10 |
|
Хранение фотографий в БД Firebird 2.5
|
|||
---|---|---|---|
#18+
ъъъъъ, Например быстрее и значительно меньше бекап? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2020, 21:42 |
|
Хранение фотографий в БД Firebird 2.5
|
|||
---|---|---|---|
#18+
Шавлюк Евгений ъъъъъ, Например быстрее и значительно меньше бекап? Огромный массив картинок - отдельно, маленький файл базы - отдельно? Наверное, очень удобно бэкап огромного массива делать, предварительно выгнав юзеров. Хотя, можно забить на консистентность и не выгонять. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2020, 21:57 |
|
Хранение фотографий в БД Firebird 2.5
|
|||
---|---|---|---|
#18+
ъъъъъ, если идентификатор картинки, это UUID, то с консистентностью, обычно, проблем не возникает. Можно даже реализовать дедупликацию картинок, если хранить в этой же таблице значение хэш-функции от картинки и при совпадении значения хэш-функции загружаемой картинки делать побайтное сравнение. Нормальный подход, широко применяемый в big data. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2020, 23:11 |
|
Хранение фотографий в БД Firebird 2.5
|
|||
---|---|---|---|
#18+
rdb_dev обычно ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2020, 23:13 |
|
Хранение фотографий в БД Firebird 2.5
|
|||
---|---|---|---|
#18+
ъъъъъ, ну, если не напортачишь и если БД на том же носителе, что и картинки, а не где-то в сети на периодически недоступном ресурсе, типа сильно территориально удалённого тома iSCSI. ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2020, 23:20 |
|
Хранение фотографий в БД Firebird 2.5
|
|||
---|---|---|---|
#18+
rdb_dev если не напортачишь Тогда да. ... Или просто хранишь в блобах и не паришься о глупостях. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2020, 23:22 |
|
Хранение фотографий в БД Firebird 2.5
|
|||
---|---|---|---|
#18+
ъъъъъ, в основном критерии по хранению файлов в файлах или блобах такие - накладные расходы на вытаскивание файла из блоба или из файла файловой системы - транзакционность блобов в отличие от файлов по второму пункту есть миф о том, что при модификации части блоба модифицируется только изменяемая часть. Но увы, это не так - в Firebird модифицируется весь блоб целиком (даже если мы говорим про array, который тоже blob). Потому что версионность, и надо держать старую версию блоба и новую. А если для версий записей есть дельты, то для блобов дельт нет. Хоть байт изменился - будет записан весь блоб по новой (и будет храниться до определенного времени старый блоб со старой версией записи). как-то так. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 00:23 |
|
Хранение фотографий в БД Firebird 2.5
|
|||
---|---|---|---|
#18+
kdv, я храню файлы в блобах, и ни о каких модификациях по частям я ни разу не задумывался: не было надобности. Возможно, "внешнее" хранение дает какие-то преимущества - я не знаю, пытаюсь понять, что это даёт, кроме очевидного гемора. Все, что предлагается - требует каких-то телодвижений, это уже гемор, и часто - небезопасный. Выше написано, что бэкап будет "компактнее" или быстрее. Почему компактнее - неясно, те же картинки обычно уже хорошо упакованы, то есть практически несжимаемы. Некоторые типы файлов хорошо сжимаются - в базе такие блобы помечаются флагом IS_COMPRESSED, клиент их на лету сжимает/распаковывает. То есть, насчет "компактности" файлов вопрос открыт. Можно придумать какие-то схемы инкрементальных бэкапов, но, повторюсь, все они требуют дополнительных телодвижений с неизбежными глюками, а я использую готовые, давно отлаженные, "встроенные" средства Firebird. У клиентов тупо каждые несколько часов запускается процедура формирования бэкапа, без прерывания работы, в фоне. Вместо использования отлаженного разработчиками FireBird механизма, потратить сколько-то ресурсов для создания велосипеда, из-за которого запросто можно потерять данные, из-за которого придется создавать неудобства в работе клиентов? ..."общая шара" мне категорически не нравится по причинам, завязанным конкретно на мои задачи, хотя возможный профит я назвал. ..."использовать UDF/UDR" для трансляции клиентам "внешнего" файла - это что даст, в каком месте и за счет чего улучшение будет? Кроме гипотетически "удобного, быстрого и компактного" бэкапа, ничего не названо. Все ещё интересно "соотношение накладных расходов по вытаскиванию файлов vs вытаскивание блоба". Каково это соотношение? Ну вот, у меня на клиенте - редактор MSWord, я даже не знаю, сколько времени файл вытягивается из блоба, MSWord точно дольше запускается. Если блоб станет загружаться в два раза быстрее - что изменится? Может быть, плюсы "внешнего" хранения станут заметны в каких-то особых случаях? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 01:10 |
|
Хранение фотографий в БД Firebird 2.5
|
|||
---|---|---|---|
#18+
ъъъъъ, я бы сказал, что "внешнее" хранение файлов в базе облегчилось бы, если бы в ФБ ввели tablespaces (как в IB 2020). Тогда, как минимум, можно было бы бэкапить отдельно tablespace основной базы и блобов. Вообще, для меня хранение файлов в базе или вовне определяется связанностью информации в этих самых файлах с данными в БД. Если это фото пользователей, договоры, документы, их сканы, автобиографии и проч, то хотелось бы иметь это в базе (хотя и в отдельном tablespace). Если же просто задача некий набор картинок "организовать", тогда нунах, файлы отдельно, а в базе - ссылки на эти файлы. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 01:19 |
|
Хранение фотографий в БД Firebird 2.5
|
|||
---|---|---|---|
#18+
kdv, ну, мы просто попробовали хранить документы базе, все сразу и "взлетело", и всё, с тех пор мы в птичку всякий хлам пихаем. Ещё с беты 2.0. Альтернатива, наверное, была, мы что-то даже обсуждали, но, раз все сразу завелось "и так" - так нафига себе лишние проблемы придумывать? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 02:12 |
|
Хранение фотографий в БД Firebird 2.5
|
|||
---|---|---|---|
#18+
ъъъъъ rdb_dev пропущено... Зачем ссылки? Можно использовать UDF/UDR для подтягивания в СУБД файлов с файловой системы в виде BLOb по реферальной таблице "идентификатор<=>путь_ФС". А в чем тогда профит "внешнего" хранения? В "шаре" картинки напрямую прикладным приложением открывать можно, а тут - для чего? На сервере не нужно делать иной доступ к файлам на шаре, типа самба не нужна. Достаточно только коннекта к базе. Соответственно не нужно администрировать этот иной доступ. Руление правами через базу а не в самбе. Уменьшение размера бэкапа, соответственно и времени бэкапа и рестора. Например у меня база 16Гигов, и картинок снаружи примерно так же. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 03:38 |
|
Хранение фотографий в БД Firebird 2.5
|
|||
---|---|---|---|
#18+
fraks Уменьшение размера бэкапа За счет чего? Бэкапим только файл базы, без картинок? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 04:43 |
|
|
start [/forum/topic.php?fid=40&fpage=14&tid=1560348]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
67ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
2ms |
others: | 253ms |
total: | 435ms |
0 / 0 |