Re: Tipo de dato

From: Alvaro Herrera <alvherre(at)dcc(dot)uchile(dot)cl>
To: Ricardo David Carrillo Sánchez <rcarrillosmx(at)yahoo(dot)com(dot)mx>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Tipo de dato
Date: 2005-03-11 16:26:50
Message-ID: 20050311162650.GC9495@dcc.uchile.cl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On Fri, Mar 11, 2005 at 10:12:03AM -0600, Ricardo David Carrillo Sánchez wrote:

Hola,

> Hola, es obvio que no me conoces,

... por lo que habría sido obviamente buena idea presentarte.

Aprovecho para incluir una copia de este mail a la lista por si a
alguien le interesa, puesto que eres obviamente suscriptor de ella.

> Yo tengo una BD hecha en PostgreSQL, ahora bien,
> muchos de mis campos estan declarados como tipo TEXT,
> en mi trabajo me pidieron el manual técnico del
> sistema que estoy desarrollando, sólo me falta una
> parte, que a mi parecer estaría más completa dicha
> documentación si lo incluyera, y esto es la proyección
> de la BD a determinado tiempo, segun entiendo se
> realizan varios calculos, ok, eso creo que lo tengo
> entendido, pero la disyuntiva viene cuando quiero
> sumar los campos text, ya que este tipo de dato según
> la documentación puede ser no tiene tamaño líminte,
> ahora bien como puedo determinar o establecer un
> tamaño en un tipo de dato TEXT para poder hacer una
> proyección del crecimiento de la BD en determinado
> tiempo.

Sí tiene límite, que es de 1 GB. Con respecto al tamaño en disco,
depende de cuantos datos almacenes: una cadena de 1000 caracteres
requerirá 1000 + 4 bytes (a menos que uses codificaciones multibyte como
UTF8, donde puede requerir entre 1000 + 4 y 4000 + 4, dado que cada
carácter puede ir codificado en entre 1 y 4 bytes). Los 4 bytes son
overhead propio del tipo de dato; el resto depende del contenido.

Así, si en una columna guardas nombres de personas, puedes asumir que
usará entre 10 y 60 caracteres por fila; si guardas páginas HTML
probablemente uses entre 2 y 20 kB. Naturalmente, es responsabilidad
tuya definir un tamaño esperado promedio para cada columna, y calcular
el tamaño total en base a eso.

Dicho eso, es importante saber que en algunos casos los campos tipo TEXT
se guardan comprimidos con un algoritmo Lempel-Ziv, que no comprime
mucho pero muy rápido en CPU. Esto puede tener o no un efecto mesurable
dependiendo de los datos. Puedes verificar la documentación relevante
(aplicable a todas las versiones desde 7.1) en

http://www.postgresql.org/docs/8.0/static/storage-toast.html

--
Alvaro Herrera (<alvherre[(at)]dcc(dot)uchile(dot)cl>)
"If you have nothing to say, maybe you need just the right tool to help you
not say it." (New York Times, about Microsoft PowerPoint)

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2005-03-11 16:28:18 Re: Scrpt batch
Previous Message Jose Stragnari 2005-03-11 16:19:47 RE: ADO RecordSet