junior Prado wrote:

> A possibilidade de compressão de alguns dados oferecida pelo MySQL pode 
> ser uma mais-valia para ambientes onde os recursos são escassos.(ex. 
> sistemas embutidos)
> 
O PostgreSQL também suporta isso. Vide ALTER TABLE foo ALTER bar SET 
STORAGE [1]. Isso se você quiser forçar o armazenamento de uma coluna 
"fora" da tabela em si; ele já faz isso automaticamente se os dados 
forem maiores do que x bytes.

> Embora o MySQL possua um indexador de fulltext bastante flexível, o 
> PostgreSQL tem dois mecanismos de indexação sobre os quais podem ser 
> construídos quaisquer índices (em teoria) e onde foram de fato 
> construídos índices de fulltext, presente nos módulos contribuídos 
> (tsearch2).
> 
Não entendi o "em teoria". Podes explicar? Lendo o artigo sobre o GiST 
vi que ele permite "encaixar" quaisquer tipos de índices na 
infra-estrutura dele.

> O MySQL permite, no entanto, uma forma mais fácil de dar indicações 
> sobre como realizar as operações, funcionalidade que no PostgreSQL é 
> bastante mais difícil, para algumas dicas até mesmo impossível de conseguir.
> 
Ugh? Tenho que discordar neste ponto. O que você quer dizer com mais 
"fácil". Utilizar sintaxes que não estão no padrão é ser "fácil"? Os 
usuários MySQL sentem dificuldade com o PostgreSQL e qualquer outro SGBD 
que implementa boa parte do padrão justamente porque a sintaxe do MySQL 
é *diferente*. O argumento de que "no MySQL é assim", *não* ajuda na 
hora de convencer os desenvolvedores do PostgreSQL a utilizarem uma 
sintaxe diferente do padrão.

> Um exemplo disto é a execuções da função de agregação count. Enquanto 
> que devido ao fato de se ter de ler as tuplas da página de forma a 
> determinar a sua visibilidade para a transações corrente, no PostgreSQL 
> a melhor forma de responder a uma pergunta com essa funções é 
> percorrendo toda a relações, o que em alguns casos pode ser muito demorado.
> 
Concordo. É uma das deficiências do MVCC. Mas há maneiras de se 
contornar isso: (i) materializando o COUNT() em uma outra tabela (ii) 
utilizando o resultado de estatísticas.

> O sistema de controle de transações do PostgreSQL parece ser bastante 
> mais robusto e consistente. O fato de sua semântica e gestão das tuplas 
> requerer manutenção temporária pode ser visto como outra desvantagem das 
> escolhas tomadas.
> 
A cada dia esta manutenção está diminuindo. ;) Coisas como FILLFACTOR, 
HOT e autovacuum diminuem bruscamente a necessidade de manutenções (aka 
VACUUM).

> Embora também seja possível obter replicações de bases de dados 
> PostgreSQL usando os seus logs, não é uma funcionalidade de fácil acesso 
> pelo que para todos os efeitos consideramos que o PostgreSQL poderia 
> oferecer um pouco mais neste aspecto.
> 
Ugh? Novamente o que seria "facilidade"? Prefiro a palavra 
flexibilidade. Você precisa ajustar dois parâmetros no postgresql.conf e 
  fazer um backup físico dos dados. Não venha me falar que no MySQL não 
é mais ou menos assim também?


> O MySQL fornece uma forma bastante transparente (um storage engine) de 
> acessar remotamente a outras bases de dados, funcionalidade que está em 
> falta no PostgreSQL. Mesmo não sendo suporte consagrado para 
> distribuição da base de dados uma vez que não mantém o esquema da tabela 
> sincronizado, nem permite a criação transparente de tabelas em hosts 
> remotos, uma funcionalidade com bastante utilidade.
> 
Não entendi o que você quis dizer como acesso remoto a outras bases de 
dados. Tenho a leve impressão de que isso é o que o dblink ou dbi-link 
fazem.


> Conclusões
> 
> 
> O MySQL: É o mais ágil, pois é otimizado para proporcionar processamento 
> rápido dos dados e tempo curto de resposta sem exigir muito do hardware.
> 
Acho que você não pode concluir isso. Já viu alguns benchmarks da 
Tweakers.net [2]?

> Quando Usar o MySQL
> 
> a. Back-end para geração de conteúdo de web sites;
> 
Por que não o PostgreSQL?

> Flickr também usa MySQL, e são mais de 800 queries simultâneas por 
> segundo, entre outras estatísticas surpreendentes.
> 
Isso é tranquilo para o PostgreSQL.


> Quando Usar o PostgreSQL
> 
> Aplicações com fortes componentes transacionais. Aplicações que 
> necessitem de tipos de dados especializados, como Sistemas de 
> Informações Geográficas (SIG) e repositórios de meta-dados. Projetos 
> baseados em metodologias Orientadas Objeto - perda de compatibilidade 
> com o padrão ANSI SQL Aplicações OLAP "light", que não necessitem do 
> nível de sofisticação de um DataWarehouse.
> 
Não entendi esta última frase. "perda de compatibilidade" com padrão? 
Não seria: aplicações que querem ser compatíveis com o padrão? Realmente 
o PostgreSQL é deficiente na parte de comandos OLAP.


[1] http://www.postgresql.org/docs/8.3/static/sql-altertable.html
[2] http://tweakers.net/reviews/657/6


-- 
   Euler Taveira de Oliveira
   http://www.timbira.com/
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a