172 похожих чатов

И ещё вопрос к сообществу - как лучше хранить документы

в базе? Или как организовать хранение на файловом сервере, если в базе лучше не хранить. Какие best practices в этом вопросе? У нас с коллегами не утихает спор - я топлю за oid т е LOB, они за bytea. Примерно 8к файлов общим размером 40гб, всякие документы и архивы, бывают по 12мб, работа с ними не частая, но бывает нужно поднять доки. Плюс хотим антивирусом проверять. Есть ли опыт файлового хранения в базе?

9 ответов

32 просмотра

В S3 или Minio. В базе - ключи

https://t.me/pgsql/291633 ;)

Если нет файлов больше 1ГБ, то не надо пользоваться LOB. Ибо обслуживание - отдельная песТня про никуда не упёршееся рукоблудство и скриптоложество. Плюс игрища с кроном/системд-таймером

можно файлы хранить в БД, если вы понимаете зачем вам это нужно ) вот авторитетное мнение Брюса Момжана на эту тему: https://momjian.us/main/blogs/pgblog/2017.html#November_6_2017 но БД будет пухнуть, ее обслуживание, резервное копирование и др. будет все затруднительней — нужно это учитывать. Были доклады, где люди рассказывали, как они избавлялись от документов в PG и возвращали их на ФС ) Те это зависит от того, что вам важно

Maxim-Sherstuk Автор вопроса
Yaroslav Schekin
https://t.me/pgsql/291633 ;)

Читал, ещё раз перечитал. Плюсы и минусы понятны, но что лучше всего - не ясно. И как стримить oid не встречал примеров. Я топлю за oid, коллеги за bytea из-за простоты, может согласиться?

Maxim-Sherstuk Автор вопроса
Maxim Sherstuk
Читал, ещё раз перечитал. Плюсы и минусы понятны, ...

Хмм... а в чём затруднение-то? Вроде бы, всё подробно расписано — сопоставьте со своей ситуацией, и всё... нет?

Maxim-Sherstuk Автор вопроса
Yaroslav Schekin
Хмм... а в чём затруднение-то? Вроде бы, всё подро...

Сопоставляю - мне кажется, что в моём случае без разницы, хотел узнать мнение сообщества, для статистики, кто что использует

Maxim Sherstuk
Сопоставляю - мне кажется, что в моём случае без р...

Да при чём тут "статистика"?! Если действительно нужно ACID для этих документов — забудьте об этой "файловой" муре (хранении в FS). Если не нужно (готовы к тому, что есть шанс потерять какие-то, по запросу вернуть не те, и к рассинхронизации в случае проблем с базой или FS), да и "железа" маловато — забудьте об этой ерунде с хранением в базе. ;) А уж если решили хранить в базе, то, на первый взгляд, файлы небольшие, произвольного доступа к "кусочкам" не нужно — подходит bytea, нет?

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Карта сайта