Eu sei que a pergunta parece provocativa, mas realmente não é. Ultimamente, estou achando o MySQL limitando em muitas áreas e gostando mais do PostgreSQL. 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 algum recurso específico do MySQL que ele seja feito melhor (como em mais de alto desempenho ou mais amigável, etc.) do que no PostgreSQL?
Eu estou querendo saber o que vou sentir falta do MySQL. Eu já achei que os campos AUTO_INCREMENT no MySQL são mais úteis do que 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 quê mais?
fonte
Respostas:
Você está claramente abordando isso da perspectiva do desenvolvedor, para encontrar respostas mais úteis no SO.
Do ponto de vista administrativo:
- Replicação (HA)
- Replicação (dimensionamento *)
- Replicação (backups)
- Suporte a aplicativos
- Tamanho e profundidade da comunidade (documentação, suporte)
- Base de instalação existente / trabalhos disponíveis
* Observe que você mencionou a
postgres
escala melhor. dimensionar significa algo diferente para todos, mas, como regra geral, as coisas que têm um caminho para distribuir a carga por vários servidores são dimensionadas melhor do que as que não têm.fonte
COUNT (*) também é muito mais lento com o PSQL. Você deve criar gatilhos para esse tipo de funcionalidade.
fonte
Como o Postgres efetivamente faz uma cópia na gravação para cada atualização (para que ele 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á a sobrecarga que o PostgreS vai. (todo registro atualizado precisa escrever mais, atualizar índices etc.)
fonte
Eu posso pensar em uma coisa que falta no PostgreSQL:
Eu acho que havia algo também com bloqueio, inserção ou atualização. Mas não consigo me lembrar o que realmente era. : S
fonte
O campo auto_increment sendo 'útil' não é muito relevante, é? A Oracle possui sequências e é sem dúvida o banco de dados comercial mais utilizado no mundo.
Existe uma enorme quantidade de informações sobre como o PostgreSQL se 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á procurando de qualquer maneira).
Muitas pessoas estão mencionando nesta página que o MySQL é mais amigável para iniciantes. Assim? Explique-me como isso importa em um ambiente de missão crítica.
fonte
O MySQL é freqüentemente chamado de gre'ed SQL . Quanto a mim (agora no momento da redação), parece muito com o PHP - bastante estranho, mas popular.
Tente renomear um banco de dados desde o início. ;) Em seguida, adicione índices condicionais (ausentes).
PS: Posso apontar pelo menos um bom recurso não discutível que o MySQL possui - ele suporta tipos de dados que economizam espaço, tão pequenos quanto bytes (não assinados), por exemplo. Isso poderia economizar muita RAM e espaço em disco quando usado de acordo. Mas há muito poucos itens a serem mencionados, infelizmente. E a comparação no link que você recebeu é realmente bacana.
fonte
auto_increment é útil até que você perceba que elas sugam tabelas com simultaneidade de inserção extremamente alta; nesse momento elas 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 já fez foi a facilidade de configurar a replicação que permite encadear a replicação e ler escravos. No entanto, o Postgres terá isso no próximo lançamento, 9.0 (que já está no status alfa).
fonte