O MySQL é melhor que o PostgreSQL em alguma coisa?

8

Eu sei que a pergunta parece provocativa, mas na verdade não é. Eu estou encontrando ultimamente o MySQL limitando em muitas áreas e gostando mais do PostgreSQL. Ele escala muito melhor e respeita muito mais os padrões SQL do que o MySQL.

Ainda sou novo no mundo do PostgreSQL e, como estou disposto a me afastar do MySQL para todos os meus projetos futuros, o que eu quero saber é: Existe alguma característica particular do MySQL que é melhor feito (como em mais alto desempenho ou mais amigável, etc.) do que no PostgreSQL?

Eu estou querendo saber o que vou perder do MySQL. Eu já descobri que os campos AUTO_INCREMENT no MySQL são mais úteis do que o SEQUENCES no PostgreSQL e a implantação no Windows era problemática no passado (não é mais um problema. Nunca um problema para mim).

O que mais?

    
por Massimiliano Torromeo 06.10.2010 / 17:04

7 respostas

3

Você está claramente abordando isso do ponto de vista do desenvolvedor, por isso pode encontrar respostas mais úteis no SO.

De uma perspectiva administrativa:
 - replicação (HA)
 - Replication (Scaling *)
 - replicação (backups)
 - Suporte de aplicativo
 - tamanho e profundidade da comunidade (Documentação, suporte)
 - Base de instalação existente / trabalhos disponíveis

* Observe que você mencionou postgres dimensionamento melhor. dimensionamento significa algo diferente para todos, mas como regra geral, as coisas que têm um caminho para espalhar a carga em vários servidores são melhores do que as que não o fazem.

    
por 11.02.2010 / 14:58
3

COUNT (*) também é muito mais lento com o PSQL. Você deveria criar gatilhos para esse tipo de funcionalidade.

    
por 11.02.2010 / 14:34
2

Como o Postgres faz uma cópia para cada atualização (para que possa lidar com transações), se você não precisa de transações e faz muitas gravações em relação às leituras, o MySQL não terá sobrecarga que o PostgreS irá. (cada registro atualizado precisa escrever mais, atualizar índices, etc.)

    
por 11.02.2010 / 14:56
1

Eu posso pensar em uma coisa que falta no PostgreSQL:

Acho que havia algo também com bloqueio, inserção ou atualização. Mas não consigo lembrar o que realmente foi. : S

    
por 11.02.2010 / 12:21
1

O campo auto_increment sendo 'prático' não é muito relevante, não é? O Oracle possui sequências e é, sem dúvida, o banco de dados comercial mais utilizado no mundo.

Há uma enorme quantidade de informações sobre como o PostgreSQL é mais seguro contra falhas e assim por diante. Vou apenas apontar para esta página no wiki do PostgreSQL (sem dúvida uma opinião colorida, mas é isso que você estão procurando de qualquer maneira).

Muitas pessoas mencionam nesta página que o MySQL é mais amigável para iniciantes. Assim? Explique-me como isso é importante em um ambiente de missão crítica.

    
por 11.02.2010 / 15:05
1

O MySQL é frequentemente chamado de gre greed . Quanto a mim (agora no momento da escrita), ele se parece muito com o PHP - bastante desajeitado, mas popular.

I'm wondering what I'm going to miss from MySQL.

Tente renomear um banco de dados para o começo. ;) Em seguida, adicione (missing) índices condicionais.

p. S. Eu posso apontar pelo menos um bom recurso não disputável que o MySQL possui - ele suporta tipos de dados de conservação de espaço tão pequenos quanto bytes (não assinados) para e. g .. Isso pode economizar muita RAM e espaço em disco quando usado de acordo. Mas há poucas guloseimas para mencionar além disso, infelizmente. E a comparação no link que você recebeu realmente bacana.

    
por 13.04.2017 / 14:13
0

auto_increment é útil até você perceber que eles sugam para tabelas com concorrência de inserção extremamente alta, quando eles se tornam um gargalo e você é forçado a implementar uma sequência usando uma tabela MyISAM.

De qualquer forma, para responder sua pergunta, a maior coisa que o MySQL teve foi fácil configurar a replicação que permite encadear replicações e ler escravos. No entanto, o Postgres terá isso na próxima versão, 9.0 (que já está em status alfa).

    
por 12.03.2010 / 01:33