Почему в Docker postgresql база весит больше чем на сервере

У меня была база в Docker container которая которую я перенес на сервер, но после дампа я обнаружил что размер данных раличался на 2-10 мб. Только ни каких потерсь в данных не обнаружилось

Почему это могло случится

Я дампил данные из докера вот таким образом

sudo docker exec -i docker_container pg_dump -U username -d database > /home/plazun/dump.sql

sudo -u postgres -i

psql -d database < /home/plazun/dump.sql

В докере

                           List of relations
 Schema |      Name      | Type  |   Owner    |   Size   | Description
--------+----------------+-------+------------+----------+-------------
 public | table1         | table | owner      | 24 MB    |
 public | table2         | table | owner      | 127 MB   |
 public | table3         | table | owner      | 16 kB    |
 public | table4         | table | owner      | 10232 kB |
 public | table5         | table | owner      | 320 kB   |
(5 rows)

На сервере

                           List of relations
 Schema |      Name      | Type  |   Owner    |   Size   | Description
--------+----------------+-------+------------+----------+-------------
 public | table1         | table | owner      | 19 MB    |
 public | table2         | table | owner      | 71  MB   |
 public | table3         | table | owner      | 16 kB    |
 public | table4         | table | owner      | 10216 kB |
 public | table5         | table | owner      | 296 kB   |
(5 rows)

Ответы (1 шт):

Автор решения: Mike

При переносе БД она почти всегда уменьшается. Если с ней конечно шли какие то операции. Даже простое добавление записей в таблицу модифицирует индексы, они становятся не оптимальными по хранению, занимают больше места. А после полной перестройки они ложатся более оптимально. При модификации/удалении строк postgresql оставляет старую копию и создает новую в другом месте таблицы. Место занимаемое старой записью через какое то время может быть использовано повторно, но это происходит не так уж и быстро, таблицы со временем начинают содержать большое количество пропусков. При дампе разумеется берутся только актуальные версии строк и пустого места в залитых с нуля таблицах нет.

→ Ссылка