Skip site navigation (1) Skip section navigation (2)

Re: tipo de datos

From: Agustin Ignacio Genoves <agustingenoves(at)gmail(dot)com>
To: Fernando Hevia <fhevia(at)ip-tel(dot)com(dot)ar>
Cc: POSTGRES <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: tipo de datos
Date: 2010-06-18 11:30:05
Message-ID: AANLkTimfnfScECRCM9VSRbp1Mkd9HyFJZZNwUJ3R5Zxz@mail.gmail.com (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
Ok, gracias, lei el manual varias veces, lo que yo preguntaba es si
alguien habia experimentado diferencias mas alla de la teoria.
Necesitaba saber si (aunque es obvio que muchos definimos columnas con
character varying(n) o character(n)) alguien habia experimentado a
nivel tiempos de respuesta, indices, espacios, osea algo mas empirico
en distintos ambientes, por ahi fui escueto al plantearlo, pero lo
hago ahora. ¿Alguien ha hecho pruebas de performance para apoyar o no
las posibles diferencias? Nosotros tenemos diferencias de performance
a nivel indices y estamos probando para ver si estamos haciendo lo
correcto o hay algo mas. Cualquier dato que puedan pensar que
modifique la performance a nivel indices sobre columnas varchar(n)
(hemos realizado vacuum, revisado la conf del server, probamos varias
formas de consulta) seria de gran ayuda. Se que faltan mas detalles,
pero quisiera eliminar la posibilidad de que este tipo de datos con
indices traiga problemas, en lo personal no lo creo. Lo que si
detectamos es que si una tabla tiene char(42) y otra tabla tiene
varchar(42) y ambas indices por esos campos (y datos de esas
longitudes) cuando hacemos un join dichas consultas no usan indices.
Muchas Gracias

El día 17 de junio de 2010 15:54, Fernando Hevia
<fhevia(at)ip-tel(dot)com(dot)ar> escribió:
>
>
>> -----Mensaje original-----
>> De: Agustin Ignacio Genoves
>>
>> Hola lista, una pregunta si yo defino una tabla con una
>> columna que va a ser character varying (42) y luego la voy a
>> usar en un indice, y sabiendo que en dicha columna van a ir
>> datos si o si con 42 caracteres. Me conviene crearla asi o la
>> creo con character(42). Cual da mejor performance a la hora
>> de usar los indices? o es que son lo mismo? gracias de antemano
>
> El único caso donde debieras usar character(42) es si absolutamente siempre
> vas a almacenar datos de ese largo y no existe la menor posibilidad de que
> eventualmente cambie para mayor o menor. El beneficio es marginal: 1 byte
> menos de almacenamiento para cadenas de hasta 126 bytes.
> De lo contrario utiliza text que maneja strings de cualquier longitud,
> aunque si sos exquisito con el estandar SQL entonces varchar(42) o character
> varying(42), ambas equivalentes.
>
> No hay ninguna diferencia en performance que justifique otra cosa.
>
> Para más información está el manual:
> http://www.postgresql.org/docs/8.4/interactive/datatype-character.html
>
> Fernando.
>
>

In response to

Responses

pgsql-es-ayuda by date

Next:From: Fernando HeviaDate: 2010-06-18 15:07:15
Subject: RE: tipo de datos
Previous:From: Jaime CasanovaDate: 2010-06-18 03:29:37
Subject: Re: datestyle en linux

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group