PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Получавам грешка не можах да запиша блок .... на временен файл, няма останало място на устройството ... с помощта на postgresql

ДОБРЕ. Тъй като все още липсват някои факти, опит за отговор, за да изясним проблема:

Изглежда, че ви свършва дисковото пространство. Най-вероятно защото нямате достатъчно място на диска. Проверете на Linux/Unix df -h например.

За да ви покажа как може да се случи това:Имайки таблица с може би 3 цели числа, само данните ще заемат около 12 байта. Трябва да добавите допълнителни разходи към него за управление на редове и т.н. На друг отговор Ервин спомена за 23Byte и направи връзка към ръководството за повече информация. Също така може да има нужда от някаква подложка между редовете и т.н. И така, малко математика:

Дори и с цяло число 3 ще стигнем до около 40 байта на ред. Имайки предвид, че искахте да вмъкнете 8 000 000, сумата ще бъде 320 000 000 байта или ~ 300 MB (само за нашия пример с 3 цели числа и много грубо).

Сега давам, имате няколко индекса на тази таблица, индексите също ще растат по време на вмъкванията. Също така друг аспект може да бъде подуване на масата и индекси, които могат да бъдат изчистени с вакуум.

И така, какво е решението:

  1. Осигурете повече дисково пространство за вашата база данни
  2. Разделете вложките си още малко и се уверете, че между тях работи вакуум


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Защо SELECT без колони е валиден

  2. Защо планиращият извежда различни резултати за функции с различна променливост?

  3. ГРЕШКА на Postgres pl/pgsql:колона име_на_колона не съществува

  4. Как да промените полето за идентификатор на автоматично номериране на сериен тип в PostgreSQL

  5. PostgreSQL - накарайте две транзакции да се изпълняват едновременно