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
