indice, unicidad

Bruno Unna bruno@iac.com.mx
Thu, 21 May 1998 01:07:14 -0500


Pablo A. Godel wrote:
> 
> > En todo caso, yo quisiera preguntarte, Norma: ¿qué tienen de malo
> > los índices? Puedes crear uno implícitamente al crear la tabla,
> > y desentenderte de él:
> > create table alumnos
> >     (cuenta int4, nombre char(60), primary key (cuenta));
> > lo cual implica automáticamente la unicidad de 'cuenta',
> > así como su no-nulidad.
> 
> Ya que estamos tengo una duda.
> 
> Yo creo una tabla con indices, luego cuando hago la busqueda, para aprovechar
> las bondades de los indices con respecto a la velocidad, como los uso, o
> solamente hago la consulta por el campo asociado al indice y listo ?
> 

Y listo. La explotación de los índices existentes es automática 
en PostgreSQL. ¡Pero cuidado! La creación de índices es una 
cuestión delicada: si indexas desmesuradamente, tu consumo de 
disco duro se puede ir al cielo. En términos generales, es 
conveniente indexar (con unique) los campos llave (o combinación 
de campos, si es un índice compuesto) de una tabla, y con mayor 
razón si:
a) ese campo lo usas en alguna relación en otra tabla, o
b) si haces muchas consultas sobre ese campo en particular.

De hecho, cuando creas un índice implicitamente con 'primary 
key', como se ve en el ejemplo, es equivalente a crear a mano, 
por fuera, un índice llamado cuenta_pkey, único, y a haber 
declarado el campo cuenta como 'not null'.

Saludos, suerte.
-- 
   +------------------------------------------------------+
   |                                           Bruno Unna |
   | bruno@sac.com.mx    Pub.key available    ICQ:1858580 |
   +------------------------------------------------------+