Horacio Miranda escribió:
> Estoy revisando y no encuentro una respuesta clara sobre el tipo de
> texto TEXT para los siguientes casos.
> 
> Tengo entendido que el varchar en postgresql soporta 1G segun lo que
> estoy leyendo lo que no me queda claro es la penalización de
> performance cuando tengo TEXT y hago cast entre otras columnas de tipo
> varchar.

La representación física de ambos es la misma. La única diferencia es
que VARCHAR tiene que contar caracteres para saber en qué punto está el
corte; el único costo de rendimiento es hacer eso cuando es necesario.

> En Oracle los CLOB son un puntero a otra estructura que puede existir
> incluso en otro tablespace.

Suena como a un "large object", que también es un puntero (OID) a datos
que están almacenados en pg_largeobject.

Ahora, si haces
UPDATE tabla2 SET algún_varchar = algún_text_que_está_en_otra_tabla

entonces vas a tener dos copias del dato, una en cada tabla.

> no estoy seguro sobre TEXT, es posible si alguien tiene mas
> información sobre este tema sería genial saberlo.  Voy a seguir
> leyendo. 

Hmm, no se me ocurre qué recomendarte leer sobre este tema.  La
documentación de TOAST explica en qué casos se trata de hacer
compresión; si tus datos no son compresibles porque ya están comprimidos
(JPG, PDF, o un base64 de una imagen) entonces te conviene configurar la
columna para que no intente comprimir, porque va a perder mucho tiempo.
Si es texto natural, la compresión gana rendimiento por el hecho de
disminuir I/O.

> Estoy pensando para bases de datos grandes el performance como se
> mueve postgresql con CAST y TEXT.

El cast es una transformación sólo de metadatos, así que el costo en
rendimiento debería ser pequeño.  Ahora, si necesitas extraer substrings
de textos largos, considera guardarlos sin compresión, porque el acceso
es más eficiente.

-- 
Álvaro Herrera           39°49'30"S 73°17'W  —  https://www.EnterpriseDB.com/


Reply via email to