Mas se vamos a parte que se aplica ao sistema legado que dou manutenção:
A aplicação já impede que o usuário digite com acentuação. Logo, não há nenhum 
acento gráfico nos registros do banco. Inclusive pensei em colocar esse banco 
em SQL_ASCII,
já que não se utiliza nenhuma acentuação nessa aplicação. 
E colocando o banco em SQL_ASCII ainda poderei desabilitar o algorítimo que 
valida e retira acentos,
já que o próprio banco já fará isso. Ou não?


Att Carlos


From: Matheus de Oliveira 
Sent: Thursday, July 18, 2013 8:03 AM
To: Comunidade PostgreSQL Brasileira 
Subject: Re: [pgbr-geral] LATIN1 ou UTF-8


2013/7/17 Euler Taveira <[email protected]>

  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).



Só uma correção, até onde me lembro, os caracteres acentuados (êãú...) são 
representados com dois bytes em UTF8, não um. Logo o espaço ocupado para textos 
em português em UTF8 pode ser, no máximo, o dobro dos representados em Latin-1. 
Mas, é claro, que a grande maioria não é caractere acentuado.

Só pra ter uma ideia, peguei essa mensagem de e-mail e fiz a contagem:


Latin1 = 2454 bytes

UTF8 = 2517 bytes


Para um texto razoavelmente grande, a diferença é ínfima.


 
  > 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.



Também concordo. Usar Latin-1 ao invés de UTF-8 somente por ocupar um pouco 
mais de espaço é, na minha opinião, uma "regressão tecnológica" . Hoje eu diria 
para usar UTF-8 em qualquer projeto novo.

-- 

Matheus de Oliveira
Analista de Banco de Dados
Dextra Sistemas - MPS.Br nível F!
www.dextra.com.br/postgres




--------------------------------------------------------------------------------
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a