PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Otrzymuję błąd, że nie można zapisać bloku .... pliku tymczasowego brak miejsca na urządzeniu ... za pomocą postgresql

OK. Ponieważ wciąż brakuje niektórych faktów, próba odpowiedzi może wyjaśnić sprawę:

Wygląda na to, że kończy Ci się miejsce na dysku. Najprawdopodobniej dlatego, że nie masz wystarczającej ilości miejsca na dysku. Sprawdź na Linux/Unix df -h na przykład.

Aby pokazać, jak to się może stać:Mając tabelę z może 3 liczbami całkowitymi, same dane zajmą około 12 bajtów. Musisz dodać do tego trochę narzutu na zarządzanie wierszami itp. inna odpowiedź Erwin wspomniał o 23Byte i połączył się z instrukcją, aby uzyskać więcej informacji. Może też być potrzebne dopełnienie między rzędami itp. Więc trochę matematyki:

Nawet z liczbą całkowitą 3 otrzymamy około 40 bajtów na wiersz. Biorąc pod uwagę, że chciałeś wstawić 8 000 000, da to 320 000 000 bajtów lub ~ 300 MB (tylko dla naszego przykładu z 3 liczbami całkowitymi i bardzo z grubsza).

Teraz dając, masz kilka indeksów na tej tabeli, indeksy również będą rosły podczas wstawiania. Innym aspektem może być rozdęcie na stole i indeksy, które można wyczyścić próżniowo.

Więc jakie jest rozwiązanie:

  1. Przydziel więcej miejsca na dysku do swojej bazy danych
  2. Podziel wkładki trochę bardziej i upewnij się, że między nimi działa próżnia


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Laravel:Błąd [PDOException]:Nie można znaleźć sterownika w PostgreSQL

  2. jak usunąć wszystkie bazy danych poza kilkoma w postgresie

  3. SQLAlchemy - SQLite do testowania i Postgresql do rozwoju - Jak przenieść?

  4. Zakres Rails dla IS NOT NULL i nie jest pusty/pusty?

  5. Zapytanie Railsowe SQL z % Wildcards działa w SQLite, ale nie w PostgreSQL?