powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / О хранении картинок в блобах
25 сообщений из 135, страница 4 из 6
О хранении картинок в блобах
    #39973935
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
hVostt,

На самом деле, насколько я помню, в случае MSSQL filestreams блобы как раз и хранятся в виде отдельных файлов на диске, с той только разницей, что расположением этих файлов управляет не приложение, а сам MSSQL. А со стороны АПИ эти блобы просто видны как обычная сетевая папка.


FILESTREAM, да. Конечно лучше, чем хранение в блобах. Но опять же, ради чего эти заморочки, если хранение файлов в файловой системе это абсолютно нативное решение, очень быстро и эффективно -- для работы с файлами используются функции ядра ОС, проще просто некуда, а также отделение хранения файлов от БД с данными повышает общую надежность системы. Основное правило у дба, любую лишнюю нагрузку, которую можно снять с БД -- нужно снять.

Есть конечно спорные на мой взгляд правила про маленькие файлы до XX килобайт, которые типа эффективнее хранить в БД. Но ИМХО, бред это, на практике никакого выигрыша нет. В моей практике я его не видал. Но может в отдельных кейсах это работает.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39973946
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot hVostt#22158599]
fkthat
Но опять же, ради чего эти заморочки

Например, интегрированные с БД бекапы, безопасность и транзакции. Лучшая защита целостности в случае если кроме самого блоба на диске в БД хранятся связанные с ним данные (а обычно так оно и есть).
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39973966
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>hVostt, сегодня, 15:41 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1325775&msg=22158599][22158599]
>...Основное правило у дба, любую лишнюю нагрузку, которую можно снять с БД -- нужно снять…
<
Как Вы работаете с сущностью, часть информации которой находится в БД, а другая часть - в файловой системе.
Где редактируется файл?
Как реализуется UPDATE?
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974033
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев
>hVostt, сегодня, 15:41 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1325775&msg=22158599][22158599]
>...Основное правило у дба, любую лишнюю нагрузку, которую можно снять с БД -- нужно снять…
<
Как Вы работаете с сущностью, часть информации которой находится в БД, а другая часть - в файловой системе.
Где редактируется файл?
Как реализуется UPDATE?


Э-э-э никак, т.к. сущности РМД в файле не хранятся.
Файл это набор байтов, о структуре которого БД ничего не знает.
Поэтому для БД что ссылка на файл в файловой системе, что BLOB, в некотором смысле одно и то же.
В некоторых случаях, хранение ссылки может быть "понятнее" для БД, если есть значащая файловая иерархия.
Грубо говоря индекс по ссылке будет чуть оптимальнее, чем по чистому BLOB'у.

Делать же из БД систему контроля версий (это я про бекапы).
Не самая лучшая идея.
Т.к. для этого есть более удобные инструменты, например git.
Которые дают гораздо больше возможностей, чем простые бекапы.

Все это я говорю о файлах, для которых БД не может (в принципе) знать внутреннюю структуру.

Если же мы говорим о xml и/или json типах, то там не все так однозначно.
Но к теме данного топика не относиться.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974070
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев
Как Вы работаете с сущностью, часть информации которой находится в БД, а другая часть - в файловой системе.


С данными работают с помощью SQL, файлы сохраняют в файловой системе и затем считывают оттуда.


ВМоисеев
Где редактируется файл?


Нигде, файл не редактируется. Если нужно обновить файл, загружается новый файл, а старый помечается как более не нужный. Периодически проводится очистка файлового хранилища от ненужных и старых файлов.


ВМоисеев
Как реализуется UPDATE?


В этом нет смысла.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974071
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>mad_nazgul, сегодня, 07:26 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1325775&msg=22158772][22158772]
>Э-э-э никак…
<
Э-э-э …
1. Сотрудник как сущность - очевидность.
2. Часть атрибутов хранится в базе (суррогатный ключ, ФИО, Дата рождения и т.п.) - очевидно.
3. Атрибут "Личное дело" - реальность. Но может хранится в файловой системы.
4. Атрибут "Личное дело" содержит информацию в формате MS Word.
5. Сущности "Сотрудник" не важно, что о ней известно базе данных или файловой системе.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974082
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>hVostt, сегодня, 09:49 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1325775&msg=22158831][22158831]
>...В этом нет смысла.
<
Может быть и так.
Но я рассуждаю несколько иначе.
1. Необходимые атрибуты сущности должны быть отражены в панельном гриде.
2. К необходимым полям относятся и информационные файлы.
3. см. слайд.
Щелчок по полю "Файлы" строки конкретной сущности реализует загрузку панели выбора файлового документа. У меня файловый документ либо текст, либо слайд.
"Личные данные" редактируются MS Word. Предварительно документ загружается из файлового сервера на локальный комп. По завершению документ может быть сохранен. Меня интересует последовательность шагов сохранения.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974157
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев
. Меня интересует последовательность шагов сохранения.

какая ещё последовательность - пишется новая версия файла,
старые автоматически не удаляются
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974199
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Изопропил, сегодня, 13:32 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1325775&msg=22159024][22159024]
>какая ещё последовательность…
<
Многопользовательская среда, оптимистическая блокировка
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974202
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев
Но я рассуждаю несколько иначе.


А я то не рассуждаю, вполне конкретно говорю :)

ВМоисеев
2. К необходимым полям относятся и информационные файлы.


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

ВМоисеев
3. см. слайд.


К сожалению, ничего не понятно.


ВМоисеев
Щелчок по полю "Файлы" строки конкретной сущности реализует загрузку панели выбора файлового документа. У меня файловый документ либо текст, либо слайд.
"Личные данные" редактируются MS Word. Предварительно документ загружается из файлового сервера на локальный комп. По завершению документ может быть сохранен. Меня интересует последовательность шагов сохранения.


Присвоили файлу уникальный идентификатор, сохранили файл в хранилище, сохранили в БД атрибут, содержащий уникальный идентификатор. Всё.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974203
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев
Многопользовательская среда, оптимистическая блокировка


При чём тут ваша блокировка вообще?

Вообще абсолютно наплевать какая блокировка, хоть оптимистичная, хоть либеральная, хоть космическая, хоть паранормальная.. Как это влияет на процесс? Зачем об этом говорить-то? :)
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974225
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
Присвоили файлу уникальный идентификатор, сохранили файл в хранилище, сохранили в БД атрибут, содержащий уникальный идентификатор. Всё.

Дровбек в том, что имеем в результате два отдельных хранилища, согласованность которых управляется только самим приложением. По известному закону рано или поздно с этим пойдут косяки. Разумеется, хранить блобы прямо в ФС будет всегда как минимум не медленнее, чем как-либо в БД, но, лично я, все же, изначально начал бы с БД, сделал бы нагрузочное тестирование, и только потом, если бы производительность не устраивала, то рассмотрел бы вариант с ФС.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974241
fkthat
Разумеется, хранить блобы прямо в ФС будет всегда как минимум не медленнее, чем как-либо в БД

это с чего это не медленнее? каждый раз I/O диска дёргать.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974251
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
Дровбек в том, что имеем в результате два отдельных хранилища, согласованность которых управляется только самим приложением. По известному закону рано или поздно с этим пойдут косяки. Разумеется, хранить блобы прямо в ФС будет всегда как минимум не медленнее, чем как-либо в БД, но, лично я, все же, изначально начал бы с БД, сделал бы нагрузочное тестирование, и только потом, если бы производительность не устраивала, то рассмотрел бы вариант с ФС.


Нагрузочное тестирование мы проводили.
Проводили и другие оценки.

По всем параметрам без исключения выигрывают файлы в файловой системе.

Единственная проблема, которая беспокоит самые лучшие умы человечества -- это ACID.
Однако, нужно сделать всё конкретно через жопу, чтобы словить проблемы согласованности.
Я с такими проблемами при работе с файлами не сталкивался.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974252
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
Дровбек в том, что имеем в результате два отдельных хранилища, согласованность которых управляется только самим приложением.

Согласованность может обеспечиваться диспетчером ресурсов
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974255
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>hVostt, сегодня, 15:12 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1325775&msg=22159117][22159117]
>...Вообще абсолютно наплевать какая блокировка...
<
Это как посмотреть.
Вася и Петя на локальных компьютерах, каждый на своём, редактируют экземпляры файла. Надо хранить результаты. Как?
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974258
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев
Это как посмотреть.
Вася и Петя на локальных компьютерах, каждый на своём, редактируют экземпляры файла. Надо хранить результаты. Как?


Сохранять обе версии файла, последняя версия будет того, кто последний сохранил.
Никакой блокировки вообще, все счастливы и довольны, данные не потеряны, работа выполнена.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974259
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев
Вася и Петя на локальных компьютерах, каждый на своём, редактируют экземпляры файла. Надо хранить результаты. Как?

Двухфазный коммит
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974267
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил
fkthat
Дровбек в том, что имеем в результате два отдельных хранилища, согласованность которых управляется только самим приложением.

Согласованность может обеспечиваться диспетчером ресурсов

Чтобы работать с двумя сервисами из-под диспетчера ресурсов, типа MSDTC надо чтобы они оба его поддерживали. Файловая система этого сама по себе не делает.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974269
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза
это с чего это не медленнее? каждый раз I/O диска дёргать.

А БД что не с того же диска контент блоба читает? К тому же еще блобы хранимые прямо в БД при чтении очень быстро засрут весь кеш сиквела, поэтому, например, те же FILESTREAM используют не кеш сиквела, а кеш самой OS.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974273
fkthat
А БД что не с того же диска контент блоба читает?

да, но она всё кеширует.
т.е. второй запрос будет уже из памяти.
конечно при большом кол-ве юзеров шанс, что оба прочитают одно и тоже - мал
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974286
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза

да, но она всё кеширует.

ФС тоже кеширует. И, как я уже писал - кешировать большие блобы в кеше сиквела это не очень хорошая идея
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974318
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>hVostt, сегодня, 18:49 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1325775&msg=22159221][22159221]
>Сохранять обе версии файла, последняя версия будет того, кто последний сохранил.
<
Нет.
Сохранена должна быть отредактированная копия оригинала файла, который находится на файловом сервере. Отредактированная копия становится оригиналом.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974331
fkthat
Алексей Роза

да, но она всё кеширует.

ФС тоже кеширует. И, как я уже писал - кешировать большие блобы в кеше сиквела это не очень хорошая идея

так зачем тогда фейсбук так сделал?
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974340
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза
так зачем тогда фейсбук так сделал?

Сделал как?
...
Рейтинг: 0 / 0
25 сообщений из 135, страница 4 из 6
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / О хранении картинок в блобах
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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