From: | Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> |
---|---|
To: | JucaviLst <jucavilst(at)elicubs(dot)com> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Re: [pgsql-es-ayuda] Tamaño |
Date: | 2005-10-05 13:27:57 |
Message-ID: | 20051005132757.GI5239@surnet.cl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
On Tue, Oct 04, 2005 at 03:37:41PM -0500, JucaviLst wrote:
> Alvaro, muchas gracias por la información.
> No sabia q el tipo numeric era mas lento que los otros tipos.
> Abusando de tu colaboración te pregunto para aclarar mas: volví a revisar la
> documentación acerca de los tipos numéricos, los INT2, INT4, INT8 dicen
> "fixed precision".
En este caso no solo son "fixed precision" sino que ademas no admiten
decimales, y tienen un rango limitado (int4 llega un poco mas alla de
los dos mil millones, por ejemplo, a ambos lados del cero). Difieren en
la cantidad de bits para almacenar el numero: int4 (tambien conocido
como integer) usa 32 bits, int2 usa 16, int8 (bigint) usa 64.
> Los FLOAT4 y FLOAT8 dicen "variable precision"
Estos son de "coma flotante". Pueden almacenar numeros muy grandes o
muy pequeños, pero pueden perder precision.
> y NUMERIC y DECIMAL dicen "user specified precision".
DECIMAL es un alias de NUMERIC.
> Lo de fixed precision significa que si almaceno 45.14, en la BD queda
> como decimal los .14 y no aproximaciones como 45.1399999999??
No puedes guardar 45.14 en un campo INT. Puedes hacerlo en FLOAT (bajo
riesgo de perder precision) en NUMERIC (pagando en rendimiento).
> ¿Qué tipo usarias si tienes q almacenar un numero de documento q no lleva
> decimales, por ej 1.890.478.477 ?
INTEGER o BIGINT.
> ¿Que tipo usarias si debes almacenar precios, por ej $ 145.789.547,48 ?
NUMERIC.
> ¿En que casos usarias float, decimal y numeric?
Usaria float o bigfloat si tuviera que almacenar numeros cuya precision
no me importa mucho, por ej. una lectura de un sensor. Usaria NUMERIC
cuando la precision es fundamental, por ej. con dinero o con los
resultados de un censo o estado de inventario (pero no para los reportes
estadisticos del inventario).
--
Alvaro Herrera Valdivia, Chile ICBM: S 39º 49' 17.7", W 73º 14' 26.8"
"Use it up, wear it out, make it do, or do without"
From | Date | Subject | |
---|---|---|---|
Next Message | Diego Barreto | 2005-10-05 13:35:20 | RE: hora del postgres ... |
Previous Message | blackbeer | 2005-10-05 13:17:34 | Re: hora del postgres ... |