PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

J'obtiens une erreur impossible d'écrire le bloc .... du fichier temporaire il ne reste plus d'espace sur l'appareil ... en utilisant postgresql

D'ACCORD. Comme il manque encore quelques faits, une tentative de réponse pour peut-être clarifier le problème :

Il semble que vous manquiez d'espace disque. Probablement parce que vous n'avez pas assez d'espace sur votre disque. Vérifier sous Linux/Unix df -h par exemple.

Pour vous montrer comment cela pourrait se produire :avoir une table avec peut-être 3 entiers, les données occuperont à elles seules environ 12 octets. Vous devez y ajouter des frais généraux pour la gestion des lignes, etc. Sur une autre réponse Erwin a mentionné à propos de 23Byte et lié au manuel pour plus d'informations sur. De plus, il peut y avoir besoin de rembourrage entre les lignes, etc. Donc, faites un peu de calcul :

Même avec un entier 3, nous nous retrouverons à environ 40 octets par ligne. En gardant à l'esprit que vous vouliez insérer 8 000 000, cela totalisera 320 000 000 octets ou ~ 300 Mo (pour notre exemple de 3 entiers uniquement et très grossièrement).

Maintenant, vous avez quelques index sur cette table, les index augmenteront également pendant les insertions. Un autre aspect pourrait également être le gonflement de la table et les index qui pourraient être effacés avec un aspirateur.

Alors quelle est la solution :

  1. Fournir plus d'espace disque à votre base de données
  2. Divisez un peu plus vos inserts et assurez-vous que le vide passe entre eux