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 |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
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.
>
>
From | Date | Subject | |
---|---|---|---|
Next Message | Fernando Hevia | 2010-06-18 15:07:15 | RE: tipo de datos |
Previous Message | Jaime Casanova | 2010-06-18 03:29:37 | Re: datestyle en linux |