PostgreSQL: для полного столбца установлено нулевое значение и увеличен размер базы данных. Почему? - PullRequest
0 голосов
/ 26 февраля 2020

Я работаю с PostgreSQL. У меня есть база данных с именем db_as с 25 000 000 строк данных. Я хотел освободить некоторое дисковое пространство, поэтому я обновил полный столбец до нулевого значения, думая, что я уменьшу размер базы данных, но это не произошло, на самом деле, я сделал противоположную вещь, увеличил размер базы данных и не знаю почему. Это увеличилось с 700 МБ до 1425 МБ, это много :(.

Я использовал это предложение, чтобы узнать размер каждого столбца:

SELECT sum(pg_column_size(_column)) as size FROM _table

И этот, чтобы узнать все размер базы данных:

SELECT pg_database.datname, pg_size_pretty(pg_database_size(pg_database.datname)) AS size FROM pg_database;

1 Ответ

2 голосов
/ 26 февраля 2020

Исходные значения все еще будут на диске, просто мертвые.

Запустите вакуум в базе данных, чтобы удалить их.

vacuum full 

Документация https://www.postgresql.org/docs/12/sql-vacuum.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...