Как хранятся большие бинарные данные в БД: накладные расходы BLOB в Oracle и Large Object в Postgres
Все, кто имел дело с базами данных, знают, что там можно хранить бинарные данные большого объема. Чаще всего, это загруженные в БД файлы. Достаточно давно меня стал посещать такой вопрос — а какие накладные расходы на хранения файлов в БД? Понятно, что они есть, но вот какие и от чего они зависят? Но каждый раз были вопросы и задачи поважнее. И вот недавно произошло то, что рано или поздно должно было произойти — одновременно у двух заказчиков возник вопрос, который, упрощая, выглядит так: «Почему мы загрузили такой‑то объем данных, а место на диске занято больше?». У одного из заказчиков был Oracle, у второго — Postgres. Конечно, можно было бы ответить уклончиво: «У каждой БД существую накладные расходы на хранение данных, вот у вас эти накладные расходы вот такие. Разработчикам СУБД виднее, как все должно быть.» И, может быть, заказчика такой ответ и устроил, но сам я понимал, что это просто отписка, так как у нас нет конкретного ответа. Несолидно как‑то. Поэтому, давайте разбираться.














