Re: Re: [pgsql-es-ayuda] Tamaño

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"

In response to

Responses

Browse pgsql-es-ayuda by date

  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 ...