TGViewer
Postgres Professional Postgres Professional @postgres_pro · 3.53K subscribers
Post #1249 2.1K
Файлы в базе считают плохой идеей. Но в реальности они все равно постоянно там оказываются: нужно хранить запрос с подписью в одной транзакции, тянуть документы ради аудита, мигрировать с Oracle, где файлы уже лежат в БД через DBMS_LOB.

Проблема в том, что если просто сложить файлы в таблицу в PostgreSQL, то вы быстро упретесь в технические барьеры.

Простые таблицы с bytea/text по умолчанию не принимают данные больше 1 ГБ — получите ERROR: file length too large. При массе тяжелых вставок система начинает дробить данные на TOAST-чанки, сжимать их, крутить BufferIO и BufferMapping, и вставка внезапно тормозит.

Хранилище больших объектов pg_largeobject кажется выходом, но и там лимит: до 32 ТБ и примерно 4,2 млрд строк, секционирования нет, удаление строки с OID в пользовательской таблице не чистит сами данные, миграции и обновления усложняются, а при параллельных вставках процессы упираются в блокировку OidGen.

В Postgres Pro Enterprise, начиная с 16 версии, есть специальные модули:

✔️ pgpro_sfile — хранит большие объекты внутри БД, убирает потолки TOAST и pg_largeobject, размер хранилища и число объектов зависят только от диска и bigint.

✔️ pgpro_bfile — работает с файлами на диске, а в базе держит только ссылки на них, по модели Oracle BFILE.

✔️ dbms_lob — эмуляция Oracle DBMS_LOB (CLOB/BLOB/BFILE), которая позволяет переносить приложения с минимальными изменениями кода.

В статье на Хабре рассказали, где в ванильном PostgreSQL начинаются проблемы с файлами и как Postgres Pro Enterprise позволяет хранить сотни терабайт файлов, а не бороться с лимитами.
  • 🔥 12
  • 👍 5
  • 👏 4
  • ❤ 1
More from @postgres_pro
  1. Oct 1, 2026📈 База растет — и вместе с ней расходы на быстрые диски. Но историческим данным максималь…
  2. Sep 29, 2026🐘 «ФОРС Дистрибуция» протестировала Postgres Pro AXE на 1 и 10 ТБ данных. 30 сентября экс…
  3. Sep 28, 2026🚀 Наш метод доступа iHeap ускоряет выборку из больших таблиц PostgreSQL и сам создает инд…
  4. Sep 24, 2026🚀 Показываем, как перенести тяжелые отчеты 1С на реплику Postgres Pro Enterprise для 1С и…
  5. Sep 23, 2026⏰ Через час, в 11:00 по Москве, начнем вебинар «Postgres Pro Backup Enterprise: от бэкапа…
  6. Sep 22, 2026🌅 Утро вечера мудренее. Особенно если завтра 23 сентября и последний день приема докладов…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →