On 16-07-2013 19:57, Alessandro Gonçalves wrote:
> Alguns caracteres que compõem utf-8 necessitam de até 3 bytes, se não me
> engano 2 para armazenar o caracter e 1 byte para guardar a sua posição
> enquanto em latin-1 os caracteres ocupam apenas 8 bits (1 byte).
> 
Na verdade, até 4 bytes. Quanto a parte da posição isso *não* é verdade.
UTF-8 ocupa o menor espaço possível (o alfabeto é mapeado todo apenas
com 1 byte).

> Logo se usarmos utf-8 o tamanho do banco tende a ser maior com o tempo,
> se a base for maior pior é isso em varios pontos como espaço em disco,
> backup (Hoje em dia isso é muito barato) o que é mais caro hoje em
> questão de estrutura é o IO.
> 
Para o português, converter de Latin-1 [1] (aka ISO-8859-1) para UTF-8
[2] não irá aumentar o seu banco pois todos os caracteres do Latin-1 são
mapeados para UTF-8 utilizando o *mesmo* tamanho em bytes (isso não é
verdade, por exemplo, para alfabetos cirílicos -- línguas eslavas).

> Você precisa usar UTF-8? Sim. Então use, senão for necessário utilize
> LATIN-1 que irá ocupar menos espaço em disco.
> 
A questão de *não* utilizar UTF-8 é meramente por falta de suporte das
interfaces ao UTF-8 (que diga-se de passagem, se elas ainda não o
suportam, elas devem estar obsoletas) e _não_ por questão de espaço.

Como reforçou o Osvaldo, *não* utilize Latin-1 a não ser que você seja
obrigado a isso.


[1] http://en.wikipedia.org/wiki/Latin-1
[2] http://en.wikipedia.org/wiki/Utf-8


-- 
   Euler Taveira                   Timbira - http://www.timbira.com.br/
   PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a