|
О хранении картинок в блобах
|
|||
---|---|---|---|
#18+
Расскажите, пожалуйста, о ваших случаях, когда централизованное хранение файлов документов в БД было сделано сперва в blob's, но потом из-за чего-то пришлось переделать на "внешнее" хранение (в файлах/каталогах файловой системы). О проблемах, который послужили причиной переделки, и какой выигрыш был достигнут в результате. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2020, 23:08 |
|
О хранении картинок в блобах
|
|||
---|---|---|---|
#18+
ъъъъъ, у меня ни разу не возникало такой необходимости. В принципе, представляю себе два возможных случая: 1. Файлы/картинки нужны на http сервере. Соответственно, их куда удобнее брать из файловой системы, нежели гнать через клиент и блобы. 2. Используется Oracle XE и размер базы не для картинок. Но в обоих логично сразу использовать bfile. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2020, 01:06 |
|
О хранении картинок в блобах
|
|||
---|---|---|---|
#18+
ъъъъъ, Ну на блобы всегда был лимит 2ГБ, чего не скажешь о файлах. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2020, 01:17 |
|
О хранении картинок в блобах
|
|||
---|---|---|---|
#18+
softwarer, как и когда правильно - примерно понятно. Интересны случаи перехода с одной архитектуры на другую, причины перехода и достигнутые результаты. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2020, 01:26 |
|
О хранении картинок в блобах
|
|||
---|---|---|---|
#18+
ъъъъъ softwarer, как и когда правильно - примерно понятно. Интересны случаи перехода с одной архитектуры на другую, причины перехода и достигнутые результаты. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2020, 01:36 |
|
О хранении картинок в блобах
|
|||
---|---|---|---|
#18+
Relic Hunter Чтобы не кушало драгоценный SQL кэш Это в смысле кэш запросов (планов запросов) или в смысле данных (содержимого этих блобов)? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2020, 01:45 |
|
О хранении картинок в блобах
|
|||
---|---|---|---|
#18+
Relic Hunter, что в итоге изменилось? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2020, 01:46 |
|
О хранении картинок в блобах
|
|||
---|---|---|---|
#18+
softwarer Relic Hunter Чтобы не кушало драгоценный SQL кэш Это в смысле кэш запросов (планов запросов) или в смысле данных (содержимого этих блобов)? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2020, 01:48 |
|
О хранении картинок в блобах
|
|||
---|---|---|---|
#18+
ъъъъъ Relic Hunter, что в итоге изменилось? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2020, 01:50 |
|
О хранении картинок в блобах
|
|||
---|---|---|---|
#18+
Relic Hunter ъъъъъ Relic Hunter, что в итоге изменилось? Нифига себе оптимизация... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2020, 01:53 |
|
О хранении картинок в блобах
|
|||
---|---|---|---|
#18+
Relic Hunter От кэша запросов никуда не деться, а вот блоков данных очень даже нужно (Data Buffer) и забивать их блобами в целом не хорошо. Ясно. В Oracle это решается настройкой кэширования на уровне конкретного lob-поля в таблице. По умолчанию значение nocache (то есть блоки блоба не ложатся в buffer cache). ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2020, 01:55 |
|
О хранении картинок в блобах
|
|||
---|---|---|---|
#18+
ъъъъъ Relic Hunter пропущено... В результе операции вставки/чтения блобов замедлились, чего и добивались. Зато возрасла скорость более важных запросов. Нифига себе оптимизация... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2020, 01:56 |
|
О хранении картинок в блобах
|
|||
---|---|---|---|
#18+
softwarer Relic Hunter От кэша запросов никуда не деться, а вот блоков данных очень даже нужно (Data Buffer) и забивать их блобами в целом не хорошо. Ясно. В Oracle это решается настройкой кэширования на уровне конкретного lob-поля в таблице. По умолчанию значение nocache (то есть блоки блоба не ложатся в buffer cache). ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2020, 01:59 |
|
О хранении картинок в блобах
|
|||
---|---|---|---|
#18+
Relic Hunter, ну почему же нехороший? Сервер вполне разумно говорит, что если некоторое lob-поле хранит небольшие и часто нужные данные - ставь ему cache и наслаждайся производительностью. А если ридиска имеет возможность править параметры хранения на продакшне - виноват не ридиска, а те, кто ему такую возможность предоставил. P.S. Вот смысла значение cache reads я не очень понимаю. В этом режиме читаемые блобы кэшируются, а записываемые - нет. Может быть, это для какого-нибудь экстравагантного случая таблицы, в которой блобы из нескольких строчек постоянно читаются, а из остальных - часто пишутся и редко читаются. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2020, 02:04 |
|
О хранении картинок в блобах
|
|||
---|---|---|---|
#18+
ъъъъъ Расскажите, пожалуйста, о ваших случаях, когда централизованное хранение файлов документов в БД было сделано сперва в blob's, но потом из-за чего-то пришлось переделать на "внешнее" хранение (в файлах/каталогах файловой системы). О проблемах, который послужили причиной переделки, и какой выигрыш был достигнут в результате. Когда блобы хранятся в одной бд с транзакционными данными, рано или поздно возникнет проблема. База вырастает и транзакции замедляются. Бекап вырастает в размере, что создает проблемы в администрировании. В общем блобы надо держать в отдельной бд со своими настройками. При хранении в файловой системе возникает проблема при большом кол-ве файлов в одной папке или большом числе файлов на диске. Сейчас есть FileCatalog в MSSQL, который маппит БД с файловой системой. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2020, 09:43 |
|
О хранении картинок в блобах
|
|||
---|---|---|---|
#18+
Relic Hunter ъъъъъ Relic Hunter, что в итоге изменилось? Действительно, только профи оценит, "как красиво изменилась архитектура в результате падения производительности системы" (система блобы-"картинки" стала отдавать медленнее. Все остальное быстрее - да, круто). И клиент и начальник навряд ли оценит "едет медленнее, зато как жужжит!" ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2020, 09:53 |
|
О хранении картинок в блобах
|
|||
---|---|---|---|
#18+
ъъъъъ, я пожалуй тут постою. подожду ответов в метриках - примеров успехов, так сказать. Об этом холиваре "картинки в БД vs картинки в FS" я слышал примерно 100500 раз начиная с 2011 года. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2020, 09:55 |
|
О хранении картинок в блобах
|
|||
---|---|---|---|
#18+
Hawkmoon ъъъъъ, я пожалуй тут постою. подожду ответов в метриках - примеров успехов, так сказать. Об этом холиваре "картинки в БД vs картинки в FS" я слышал примерно 100500 раз начиная с 2011 года. Ваш знакомый знает толк в извращениях, в base64 кодировать и декодировать потом на каждый чих. Лучше бы мне это процессорное время подарил. Давайте рассмотрим плюсы и минусы хранения ассетов (графики, скриптов, стилей) в БД, по сравнению с файлами на диске: Плюсы: Доступность из любого места проекта, без проксирования и использования сетевых файловых систем; Возможность гарантированного хранения произвольных метаданных, без отрыва от файла; Возможность организации файловой системы не в виде орграфа. Пониженная нагрузка на физические диски (без учета возможного локального дискового кэша); ACID, при условии реализации его базой данных. Минусы: Дополнительная машинерия для доступа к данным (отдачи клиенту, записи файлов администратором и т. д.); Повышенная латентность, нагрузка на сеть и сервер БД; Избыточная обработка, связанная с протоколом работы с БД (включая сериализацию данных), по сравнению с протоколом работы с файловой системой. Отсутствие некоторых инструментов, например, sendfile(2) или mmap(2). В абсолютном большинстве случаев, хранение и отдача ассетов сводится к неизменяемым файлам с хорошо определенными именами, прекрасно укладывающимся даже не в орграф, а в дерево. Отдача легковесным сервером типа nginx, за счет инструментов типа sendfile и кэширования (выполняется VFS-подсистемой ядра ОС), позволяет отдавать их с минимальными издержками, что и требуется для задачи. Большинство плюсов, при этом, достаточно условны, т.к. БД в большом ряде случаев будут проигрывать по сравнению с более специализированными инструментами (например, GlusterFS или MooseFS) или композитными (БД для метаданных, традиционная ФС для данных) решениями. Итого: следует считать, смысла в базе данных для хранения ассетов нет. Если возникает редкий случай, когда он появляется — вы об этом узнаете. Взято https://ru.stackoverflow.com/questions/112730/Способы-хранения-картинок ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2020, 10:54 |
|
О хранении картинок в блобах
|
|||
---|---|---|---|
#18+
a_voronin Бекап вырастает в размере, что создает проблемы в администрировании. Когда нужно восстановить систему после сбоя и внезапно оказывается, что части нужных данных просто нет, это создаёт куда большие проблемы в администрировании. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2020, 12:53 |
|
О хранении картинок в блобах
|
|||
---|---|---|---|
#18+
a_voronin, об этом и так все знают. не надо это доказывать. Вопрос топик-стартера же не в этом. А "кто реально отказывался от хранения в БД и перекладывал в файлы и к чему это привело в цифрах ?" Как - не интересно. Интересно к чему привело. А мне еще интересно - и сколько это стоило в человекоднях. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2020, 13:52 |
|
О хранении картинок в блобах
|
|||
---|---|---|---|
#18+
Hawkmoon a_voronin, об этом и так все знают. не надо это доказывать. Вопрос топик-стартера же не в этом. А "кто реально отказывался от хранения в БД и перекладывал в файлы и к чему это привело в цифрах ?" Как - не интересно. Интересно к чему привело. А мне еще интересно - и сколько это стоило в человекоднях. Отказались от хранения Excel в той же БД, что и остальные данные. Сделали 2 Бд. Заняло 1 человекодень. Загрузка данных ускорилась, но точно не мерила. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2020, 15:08 |
|
О хранении картинок в блобах
|
|||
---|---|---|---|
#18+
a_voronin Когда блобы хранятся в одной бд с транзакционными данными, рано или поздно Спасибо, но к вопросу ваш ответ не имеет никакого отношения. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2020, 15:46 |
|
О хранении картинок в блобах
|
|||
---|---|---|---|
#18+
ъъъъъ Расскажите, пожалуйста, о ваших случаях, когда централизованное хранение файлов документов в БД было сделано сперва в blob's, но потом из-за чего-то пришлось переделать на "внешнее" хранение (в файлах/каталогах файловой системы). О проблемах, который послужили причиной переделки, и какой выигрыш был достигнут в результате. Миграция хранения файлов из БД в ФС только планируется. База Postgresql 10, файлы хранятся как BLOB. Файлы в основном не очень большие, несколько Мб (сканы в PDF по большей части). Файлов около 100 тыс. Сначала планировалось, что файлы удаляться не будут. При таком раскладе (кроме повышенного расхода дискового пространства) проблем не должно было возникнуть, т. к. физически, точнее на уровне таблицы с блобами файлы хранятся "подряд" идущими блоками и доступ на стенде размером в 100 Гб был более чем приемлемый (Postgressql хранит блобы в спец таблице pg_largeobject, порубленными по 2 Кб на кортеж) . Однако ситуация изменилась, когда понадобилось удалять файлы, т.к. в середине таблицы появились "дыры", в которые стали записываться куски новых файлов, а другие куски которые не влезли - в конец и скорость доступа начала понемногу деградировать, т.к. считать файл "последовательно" уже не получается. В результате миграции планируется получить выигрыш в скорости и экономии дискового пространства, но потерять транзакционную целостность, простые бэкапы и репликацию. Как-то так. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2020, 15:51 |
|
О хранении картинок в блобах
|
|||
---|---|---|---|
#18+
dimonz80, Вы планируете использовать ФС, в которой не бывает фрагментации? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2020, 16:33 |
|
|
start [/forum/topic.php?fid=32&msg=39962606&tid=1539849]: |
0ms |
get settings: |
12ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
61ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
67ms |
get tp. blocked users: |
2ms |
others: | 247ms |
total: | 426ms |
0 / 0 |