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