2017-09-28 1 views
0

Ok, voici la question. J'ai une table que je crée commeTableize et tableau texte [] dans postgresql

créer les maths de table ( ID1 bytea , ID2 bytea , texte de commentaire [] )

il y a plus de colonnes, mais c'est insignifiant. Après la création insérer là ~ lignes de 500k et les modifier par plusieurs requêtes chacun d'eux contient

array_append (commentaires, « Quelques commentaires sur l'étape de calcul actuelle »)

Et après tout est terminé, je reçois tablesize environ 1.6GB de

Si je lance

mathématiques ALTER TABLE ALTER commentaires TYPE COLONNE varchar [] UTILISATION commentaires :: varchar [];

la tablesize baisse de manière significative, à environ ~ 300Mo de

Pourquoi est-ce qui se passe? Et comment puis-je obtenir un résultat similaire sans modifier le type de colonne?

note: J'ai essayé de définir la colonne sur le type varchar [] à la création, mais après avoir fait toutes les requêtes, elle devient 1.6Gb et la conversion en texte [] la réduit à 300Mb.

Répondre

0

Le ALTER TABLE .. ALTER TYPE .. effectue une réécriture de table complète, qui compacte la table et les index.

Vous obtiendrez le même résultat de VACUUM FULL tablename; à la place.

text et varchar ont exactement le même stockage.