Re: [Pgsql-ayuda] campos numericos

From: Antonio Castro <acastro(at)ciberdroide(dot)com>
To: Gunnar Wolf <gwolf(at)campus(dot)iztacala(dot)unam(dot)mx>
Cc: Ariel Nardelli <ariel(at)empresanardelli(dot)com(dot)ar>, pgsql-ayuda(at)tlali(dot)iztacala(dot)unam(dot)mx
Subject: Re: [Pgsql-ayuda] campos numericos
Date: 2002-01-03 09:09:16
Message-ID: Pine.LNX.4.21.0201030938150.2139-100000@midas.ciberdroide.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On Wed, 2 Jan 2002, Gunnar Wolf wrote:

> > Y la otra pregunta es, si quiero definir un campo numerico que solo tiene un
> > digito, o sea puede tener datos del 0 al 9, tengo que definirlo como int2? o
> > sea tener casi 5 digitos cuando solo quiero usar 1? o puedo definir campos de
> > otro tipo que me permita manejar la longitud de los campos numericos? o sea,
> > tengo campos numericos de 6 dijitos y es un campo fijo en cantidad de
> > caracteres, tengo que definir forzosamente int8 que tiene mayor cantidad de
> > digitos?, puedo definir un campo entero con x cantidad de digitos??...
>
> int2 es un entero de dos bytes o 16 bits, o sea, de -32767 a 32767. Ahora,
> para representar del 0 al 9 necesitas poco menos de 4 bits. Sí, ocupa 4
> veces tanto... Pero si vas a hacer comparaciones numéricas en tu base, es
> inclusive más rápido usar int2 que decimal(1,0), pues es más fácil para la
> máquina no tener que andar moviendo bits fraccionarios de palabra.

Bueno int2 parece una muy buena solución especialmente para la velocidad
de cálculo, pero la diferencia de velocidad podría resultar poco importante
según el caso. Quizás te interese más optimizar espacio. Puedes usar en ese
caso un numeric(n,0) en realidad está para eso. La forma de utilizarlo en
una query donde necesites usarlo en una operación aritmética con otro tipo
de dato numérico sería con un cast. La diferencia entre un decimal(n,0) y
un numeric(n,0) la desconozco pero creo haber leido que numeric es más
corriente o más recomendable aunque no recuerdo la razón.

La solución óptima depende de cada caso. Haz algunas pruebas.

Un saludo

Antonio Castro

+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
/\ /\ Ciberdroide Informática (Tienda de Linux)
\\W// <<< http://www.ciberdroide.com >>>
_|0 0|_
+-oOOO--(___o___)--OOOo----------------------------------------------------+
| . . . . U U . . . . Antonio Castro Snurmacher acastro(at)ciberdroide(dot)com |
| . . . . . . . . . . |
+()()()----------()()()----------------------------------------------------+
| *** 1.700 sitios clasificados por temas sobre Linux en ***Donde_Linux*** |
| <<< http://www.ciberdroide.com/misc/donde/dondelinux.html >>> |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Ricardo Ignacio Mercado Araneda 2002-01-03 11:56:34 [Pgsql-ayuda] Consulta sobre el catalogo postgres
Previous Message Ing. Luis Esteban de Dios Núñez 2002-01-03 04:59:18 Ayuda con PostgreSQL 8.2.4