pena - mysql vs postgresql large database



MySQL vs PostgreSQL para aplicativos da Web (8)

Eu estou trabalhando em um aplicativo da web usando Python (Django) e gostaria de saber se o MySQL ou PostgreSQL seria mais adequado ao implantar para produção.

Em um podcast Joel disse que tinha alguns problemas com o MySQL e que os dados não eram consistentes.

Eu gostaria de saber se alguém teve algum desses problemas. Além disso, quando se trata de desempenho que pode ser facilmente ajustado?


@WolfmanDragon

O PostgreSQL possui suporte (minúsculo) para objetos, mas é, por natureza, um banco de dados relacional. Da sua página sobre :

O PostgreSQL é um poderoso sistema de banco de dados relacional de código aberto.


Alguns dizem que o MySQL é simples e rápido.

Rápido - Bem, se você usar o mecanismo padrão de armazenamento MyIsam, será rápido. Tem quase zero recurso de banco de dados sério, mas é rápido. Se eu fosse sarcástico, diria que um grep em um arquivo simples também é rápido. Engraçado, não é tão longe de como o MyIsam armazena dados. Portanto, não espere nenhum recurso de banco de dados relacional lá. Nem mesmo restrições de integridade de referência.

Simples - Agora, digamos que você queira um subconjunto justo de recursos reais do banco de dados. Algumas coisas como restrições de integridade, gatilhos, isolamento de transação, índices funcionais talvez? Então, obviamente, você precisa deixar o MyIsam ligado e escolher um dos três principais mecanismos de armazenamento. Quem foi desenvolvido por diferentes fornecedores, cada um com uma configuração / comportamento particular.

Confira uma visão geral dos mecanismos de armazenamento e, se você não tiver dor de cabeça, concordarei que o MySQL é simples do seu ponto de vista.

Com base nesses fatos, deixarei que você pense sobre aqueles que dizem que o MySql é rápido e simples.

Se você quiser escalar mais, economizar tempo, ter bugs menos estranhos para caçar, ter código de aplicativo mais simples, gastar mais tempo otimizando seus negócios, não lutar com seu banco de dados, a solução de código aberto escolhida é o Postgresql.


Bem, eu não acho que você deveria estar usando uma marca de banco de dados diferente em qualquer desenvolvimento passado (build, staging, prod), pois isso vai voltar a te incomodar.

Pelo que entendi, o PostgreSQL é uma implementação de banco de dados mais "correta", enquanto o mySQl é menos correto (menos complacente), mas mais rápido.

Então, se você está escrevendo um aplicativo CRUD, o mySQL é o caminho a ser seguido. Se você precisar de certos recursos fora de seu banco de dados (se você não tiver certeza, então você não precisa), então você pode querer olhar para o postgreSQL.


Embora esteja um pouco desatualizado, valeria a pena ler a página Gotchas do MySQL . Muitos dos itens listados ainda são verdadeiros, tanto quanto é do meu conhecimento.

Eu uso o PostgreSQL.


Eu uso os dois extensivamente. Minha escolha para um projeto em particular se resume a:

  • Licenciamento - Você vai distribuir seu aplicativo (IANAL)
  • Infraestrutura existente e Base de Conhecimento
  • Qualquer molho especial que você tem que ter.

Por molho especial eu coisas como:

  • replicação fácil / barata = MySQL
  • Enormes problemas com conjuntos de dados com pequenos resultados = PostgreSQL. Use as extensões de idioma e tenha operações de dados muito eficientes. (PL / Python, PL / TCL, PL / Perl, etc)
  • Interface com Bibliotecas Estatíticas R = PostgreSQL PL/R disponível no debian / ubuntu

O MySQL é um sistema de gerenciamento de banco de dados relacional, enquanto o PostgreSQL é um sistema de gerenciamento de banco de dados de objetos . O PostgreSQL é adequado também para desenvolvedores C ++ ou Java, pois nos dá mais controle sobre como as consultas são escritas. O ORDBMS também nos fornece Objetos e Tipos Definidos pelo Usuário. As próprias consultas SQL estão muito mais próximas dos padrões ISO do que o MySQL.
Você precisa de um ORDBMS ou um RDBMS? Isso melhor responderá sua pergunta.


Se você está escrevendo um aplicativo que pode ser distribuído bastante em servidores diferentes, o MySQL carrega muito peso sobre o PostgreSQL por causa da portabilidade. O PostgreSQL é difícil de encontrar em hosts da web menos satisfatórios, mas há alguns. Em muitos aspectos, o PostgreSQL é mais lento que o MySQL, especialmente quando se trata de ajustes finos no final. Ao todo, eu diria que dar uma chance ao PostgreSQL por um curto período de tempo, dessa forma você não está evitando completamente, e então fazer um julgamento.


Uma nota para futuros leitores: O texto abaixo foi editado pela última vez em agosto de 2008. Isso é quase 5 anos atrás a partir desta edição. O software pode mudar rapidamente de versão para versão, por isso, antes de escolher um DBMS com base nos conselhos abaixo, faça uma pesquisa para ver se ainda é preciso.

Melhor?

O MySQL é muito mais comumente fornecido por hosts da web.

O PostgreSQL é um produto muito mais maduro.

esta discussão abordando sua pergunta "melhor"

Aparentemente, de acordo com esta página web , o MySQL é rápido quando os níveis de acesso simultâneo são baixos, e quando há muito mais leituras que gravações. Por outro lado, exibe baixa escalabilidade com cargas crescentes e taxas de gravação / leitura. O PostgreSQL é relativamente lento em baixos níveis de simultaneidade, mas se adapta bem a níveis de carga crescentes, enquanto fornece isolamento suficiente entre acessos simultâneos para evitar lentidão em altas taxas de gravação / leitura. Continua ligando-se a uma série de comparações de desempenho, porque essas coisas são muito ... sensíveis às condições.

Então, se o seu fator de decisão é "o que é mais rápido? ", Então a resposta é "depende. Se realmente importa, teste sua aplicação contra ambos. " E se você realmente se importa, você entra em dois DBAs (um que é especializado em cada banco de dados) e levá-los para ajustar a porcaria fora dos bancos de dados e, em seguida, escolha. É surpreendente como bons DBAs são caros; e valem cada centavo .

Quando é importante.

O que provavelmente não faz, então escolha o banco de dados de que você gosta e siga em frente; melhor desempenho pode ser comprado com mais RAM e CPU, e design de banco de dados mais apropriado, e truques de procedimentos armazenados inteligentes e assim por diante - e tudo isso é mais barato e mais fácil para o site aleatório-X do que agonizar, MySQL ou PostgreSQL e especialista em sintonização de DBAs caros.

Joel também disse naquele podcast que o comentário voltaria para mordê-lo, porque as pessoas diriam que o MySQL era uma porcaria - Joel não conseguia count fileiras de volta. O plural de anedota não é dados. Ele disse :

O MySQL é o único banco de dados que eu já programou na minha carreira que teve problemas de integridade de dados, onde você faz consultas e obtém respostas sem sentido, que estão incorretas.

e ele também disse:

É apenas uma anedota. E isso é uma das coisas que me frustra, na verdade, sobre blogs ou apenas a Internet em geral. [...] Há apenas uma tendência estranha de fazer anedotas em verdades e eu, na verdade, como blogueira, estou começando a me sentir um pouco culpada por isso





postgresql