Re: [pgbr-geral] Benchmark PostgreSQL x MySQL
Em 30 de março de 2014 17:20, Itamar Reis Peixoto ita...@ispbrasil.com.br escreveu: On 03/30/2014 01:16 PM, Eduardo Alexandre wrote: Boa tarde, Estou precisando muito de comparação e, de preferência benchmarks sérios entre MySQL e PostgreSQL para definição de qual utilizar para um projeto. Na internet encontrei apenas alguns esboços. Alguém tem material a respeito ou indicação de link? vá de oracle-mysql e seja feliz, Mesmo se quiseres usar uma arquitetura pronta e preguiçosa com siglas já conhecidas (LAMP, WAMP, etc) sem escalabilidade e com licença de uso restrita (MySQL não é tão livre quanto o PostgreSQL) essa afirmação /talvez/ fosse verdadeira. Apesar que, o conceito de felicidade é relativo e eu respeito a opinião alheia. É muito difícil comparar os dois produtos. O MySQL é mais um repositório de dados enquanto o PostgreSQL oferece todas as funções de um SGBDR. Depende muito do escopo do seu projeto. Se eu tivesse que usar o MySQL ao invés do PostgreSQL, ainda assim procuraria usar algum outro SGBDR que fosse mais SQL Compliant, como HSQLDB ou até mesmo SQLite. Pela minha experiência, em poucas situações eu não usaria PostgreSQL: 1) Para um banco de dados embarcado; 2) Com servidor Windows - nesse último caso por causa da vulnerabilidade e inconsistência do SO. TIAGO J. ADAMI http://www.adamiworks.com @tiadami ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Benchmark PostgreSQL x MySQL
2014-03-30 18:16 GMT-03:00 Guimarães Faria Corcete DUTRA, Leandro l...@dutras.org: 2014-03-30 13:16 GMT-03:00 Eduardo Alexandre eduardog...@gmail.com: Estou precisando muito de comparação e, de preferência benchmarks sérios entre MySQL e PostgreSQL para definição de qual utilizar para um projeto. Difícil, porque o MySQL não é sério. É mais uma brincadeira que saiu de controle. Nem roda código ISO SQL, então as comparações necessariamente já têm de ser ajustadas para favorecer o MySQL. Não fiquei satisfeito com minha própria resposta, então vai um complemento. Comparativos sérios são difíceis, porque SGBDs são extremamente complexos e seus usos, muito variados. Os comparativos publicados geralmente são, portanto e naturalmente, geralmente incompletos. Quanto a desempenho, há alguns comparativos padronizados, mas há várias ressalvas. Primeiro, organizações como a Oracle (atual proprietária do MySQL) costumam probir a divulgação; segundo, os comparativos padronizados costumam colocar exigências bem oneroras, e aí o povo do PostgreSQL costuma achar que não vale muito a pena, até porque quem sabe pouco costuma não entender esses testes, suas condições e resultados, e quem sabe mais costuma olhar outras maneiras de comparar; terceiro, um comparativo padronizado costuma ser irrelevante para as situações específicas. O certo seria uma comparação bem focada na tua situação. Mas isso exigiria que já houvesse código aplicativo, uma massa de dados de testes representativa (mesmo que artificialmente gerada) e código de testes para carga. Além de ser um custo razoável para investir na decisão, há o problema de que o MySQL é tão ruim em termos de linguagem ISO SQL que ou dará mais trabalho que o razoável para criar o código aplicativo, ou acabará conduzindo a criar programas num mínimo denominador comum, um subconjunto do ISO SQL que favorece o MySQL ao deixar de explorar as capacidades de um SGBD robusto como o PostgreSQL. -- skype:leandro.gfc.dutra?chat Yahoo!: ymsgr:sendIM?lgcdutra +55 (61) 3546 7191 gTalk: xmpp:leand...@jabber.org +55 (61) 9302 2691ICQ/AIM: aim:GoIM?screenname=61287803 BRAZIL GMT−3 MSN: msnim:chat?contact=lean...@dutra.fastmail.fm ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Benchmark PostgreSQL x MySQL
Em 31 de março de 2014 09:30, Guimarães Faria Corcete DUTRA, Leandro l...@dutras.org escreveu: 2014-03-30 18:16 GMT-03:00 Guimarães Faria Corcete DUTRA, Leandro l...@dutras.org: 2014-03-30 13:16 GMT-03:00 Eduardo Alexandre eduardog...@gmail.com: Estou precisando muito de comparação e, de preferência benchmarks sérios entre MySQL e PostgreSQL para definição de qual utilizar para um projeto. Difícil, porque o MySQL não é sério. É mais uma brincadeira que saiu de controle. Nem roda código ISO SQL, então as comparações necessariamente já têm de ser ajustadas para favorecer o MySQL. Não fiquei satisfeito com minha própria resposta, então vai um complemento. Comparativos sérios são difíceis, porque SGBDs são extremamente complexos e seus usos, muito variados. Os comparativos publicados geralmente são, portanto e naturalmente, geralmente incompletos. Quanto a desempenho, há alguns comparativos padronizados, mas há várias ressalvas. Primeiro, organizações como a Oracle (atual proprietária do MySQL) costumam probir a divulgação; segundo, os comparativos padronizados costumam colocar exigências bem oneroras, e aí o povo do PostgreSQL costuma achar que não vale muito a pena, até porque quem sabe pouco costuma não entender esses testes, suas condições e resultados, e quem sabe mais costuma olhar outras maneiras de comparar; terceiro, um comparativo padronizado costuma ser irrelevante para as situações específicas. O certo seria uma comparação bem focada na tua situação. Mas isso exigiria que já houvesse código aplicativo, uma massa de dados de testes representativa (mesmo que artificialmente gerada) e código de testes para carga. Além de ser um custo razoável para investir na decisão, há o problema de que o MySQL é tão ruim em termos de linguagem ISO SQL que ou dará mais trabalho que o razoável para criar o código aplicativo, ou acabará conduzindo a criar programas num mínimo denominador comum, um subconjunto do ISO SQL que favorece o MySQL ao deixar de explorar as capacidades de um SGBD robusto como o PostgreSQL. Olá, Agradeço pelos comentários e posso dizer que concordo com sua opinião. No final de semana pensei a respeito disso e estou pretendendo fazer aproximadamente o que mencionou: criar uma massa de dados de teste representativa para a necessidade. Claro que não é possível cobrir e garantir sem sombra de dúvida qual é o melhor mas, dá para se ter uma ideia de como é o comportamento e tempo de resposta de ambos em uma determinada situação. Se tiver novidades, aviso na lista. Abraços, ___ Eduardo Alexandre ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Benchmark PostgreSQL x MySQL
Agradeço pelos comentários e posso dizer que concordo com sua opinião. No final de semana pensei a respeito disso e estou pretendendo fazer aproximadamente o que mencionou: criar uma massa de dados de teste representativa para a necessidade. Claro que não é possível cobrir e garantir sem sombra de dúvida qual é o melhor mas, dá para se ter uma ideia de como é o comportamento e tempo de resposta de ambos em uma determinada situação. Só tome cuidado porque desempenho não é o único fator de escolha sobre um gerenciador de banco de dados: questões de manutenção, backup, escalabilidade, isolação e controle de transações (MVCC), pessoal técnico, estabilidade, tempos de restauração, capacidade de replicação, ferramentas e ecossistema, enfim, a lista não acaba. Se tiver novidades, aviso na lista. Serus resultados serão bem vindos aqui com certeza, mas tome cuidado com o que virá da contraparte. []s Flavio Gurgel ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Benchmark PostgreSQL x MySQL
Algumas dicas se vai fazer testes: 1) Vai ter suporte a transações? O MySQL usa MyISAM como padrão, que não tem suporte a transações. Se for usar isso no MySQL, use unlogged tables no PostgreSQL para ter uma comparação mais justa. Não é a mesma coisa, mas é mais justo. 2) Crie uma massa de dados com tabelas com pelo menos 4x o tamanho da RAM disponível no servidor. 3) Use um servidor dedicado, se for usar windows, deixe ele descansar uns 30 minutos após subir o SGDB e inicie o teste. 4) Zere o cache da memória antes de cada bateria de testes. Se possível reinicie o SGDB também. 5) Refaça cada teste 3x para ver se o número é consistente. 6) Cada teste deve rodar por pelo menos uns 30 minutos, para o efeito do checkpoint ser levado em consideração. 60 minutos é o recomendado. 7) Faça um tuning no SO e no SGDB para não usar as configurações padrão. Senão fica difícil de comparar, uma vez que você não está utilizando o melhor de cada um. 8) Faça um crash teste no meio também: no meio do teste puxe o servidor da tomada e veja se a base sobreviveu... não adianta nada ser velocidade e não ter segurança, né? 9) Atualize as estatísticas das tabelas antes de cada teste isso parece óbvio, mas tem muita gente que esquece desse detalhe e trabalha com planos de execução terríveis. 10) Não adianta testar apenas uma ou outra consulta e ver quanto tempo leva, tem de simular uma operação real, com volume de dados factíveis e concorrência também. Um dos maiores desafios de uma aplicação é lidar com alta concorrência, com centenas de pessoas querendo transacionar (INSERT, UPDATE, DELETE) nas mesmas tabelas ao mesmo tempo. 11 Em 31 de março de 2014 09:38, Eduardo Alexandre eduardog...@gmail.comescreveu: Em 31 de março de 2014 09:30, Guimarães Faria Corcete DUTRA, Leandro l...@dutras.org escreveu: 2014-03-30 18:16 GMT-03:00 Guimarães Faria Corcete DUTRA, Leandro l...@dutras.org: 2014-03-30 13:16 GMT-03:00 Eduardo Alexandre eduardog...@gmail.com: Estou precisando muito de comparação e, de preferência benchmarks sérios entre MySQL e PostgreSQL para definição de qual utilizar para um projeto. Difícil, porque o MySQL não é sério. É mais uma brincadeira que saiu de controle. Nem roda código ISO SQL, então as comparações necessariamente já têm de ser ajustadas para favorecer o MySQL. Não fiquei satisfeito com minha própria resposta, então vai um complemento. Comparativos sérios são difíceis, porque SGBDs são extremamente complexos e seus usos, muito variados. Os comparativos publicados geralmente são, portanto e naturalmente, geralmente incompletos. Quanto a desempenho, há alguns comparativos padronizados, mas há várias ressalvas. Primeiro, organizações como a Oracle (atual proprietária do MySQL) costumam probir a divulgação; segundo, os comparativos padronizados costumam colocar exigências bem oneroras, e aí o povo do PostgreSQL costuma achar que não vale muito a pena, até porque quem sabe pouco costuma não entender esses testes, suas condições e resultados, e quem sabe mais costuma olhar outras maneiras de comparar; terceiro, um comparativo padronizado costuma ser irrelevante para as situações específicas. O certo seria uma comparação bem focada na tua situação. Mas isso exigiria que já houvesse código aplicativo, uma massa de dados de testes representativa (mesmo que artificialmente gerada) e código de testes para carga. Além de ser um custo razoável para investir na decisão, há o problema de que o MySQL é tão ruim em termos de linguagem ISO SQL que ou dará mais trabalho que o razoável para criar o código aplicativo, ou acabará conduzindo a criar programas num mínimo denominador comum, um subconjunto do ISO SQL que favorece o MySQL ao deixar de explorar as capacidades de um SGBD robusto como o PostgreSQL. Olá, Agradeço pelos comentários e posso dizer que concordo com sua opinião. No final de semana pensei a respeito disso e estou pretendendo fazer aproximadamente o que mencionou: criar uma massa de dados de teste representativa para a necessidade. Claro que não é possível cobrir e garantir sem sombra de dúvida qual é o melhor mas, dá para se ter uma ideia de como é o comportamento e tempo de resposta de ambos em uma determinada situação. Se tiver novidades, aviso na lista. Abraços, ___ Eduardo Alexandre ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- Atenciosamente, Fábio Telles Rodriguez blog: http:// http://www.midstorm.org/~telles/shttp://tellesr.wordpress.com/ avepoint.blog.br e-mail / gtalk / MSN: fabio.tel...@gmail.com Skype: fabio_telles Timbira - A empresa brasileira de Postgres http://www.timbira.com.br ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Benchmark PostgreSQL x MySQL
2014-03-31 9:42 GMT-03:00 Flavio Henrique Araque Gurgel fha...@gmail.com: Só tome cuidado porque desempenho não é o único fator de escolha sobre um gerenciador de banco de dados Nem de longe! Nem sequer o mais importante. Eu colocaria, antes de desempenho: segurança, estabilidade, gestão (afinal, é um SGBD), escalabilidade… e a ordem depende dos requisitos funcionais e não funcionais do sistema aplicativo e da organização usuária. Eu nem testaria desempenho, para falar a verdade. O MySQL, nesses outros requisitos, nem é comparável ao PostgreSQL. É um brinquedo de escovador de bits, mesmo. Sem desprezar as questões colocadas pelo Flávio, que são importantíssimas. É só que as classifiquei de outra maneira, basicamente muitas dentro de ‘gestão’, o que é claramente uma generalização grosseira de minha parte: questões de manutenção, backup, escalabilidade, isolação e controle de transações (MVCC), pessoal técnico, estabilidade, tempos de restauração, capacidade de replicação, ferramentas e ecossistema, enfim, a lista não acaba. -- skype:leandro.gfc.dutra?chat Yahoo!: ymsgr:sendIM?lgcdutra +55 (61) 3546 7191 gTalk: xmpp:leand...@jabber.org +55 (61) 9302 2691ICQ/AIM: aim:GoIM?screenname=61287803 BRAZIL GMT−3 MSN: msnim:chat?contact=lean...@dutra.fastmail.fm ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Benchmark PostgreSQL x MySQL
From: fabio.tel...@gmail.com Date: Mon, 31 Mar 2014 13:52:14 -0300 Algumas dicas se vai fazer testes: 1) Vai ter suporte a transações? O MySQL usa MyISAM como padrão, que não tem suporte a transações. Se for usar isso no MySQL, use unlogged tables no PostgreSQL para ter uma comparação mais justa. Não é a mesma coisa, mas é mais justo. Só um detalhe no que o Fabio escreveu acima: a partir da versão 5.5 do MySQL o storage engine padrão do MySQL é o InnoDB, e não o MyISAM [1]. [1] http://dev.mysql.com/doc/refman/5.5/en/innodb-default-se.html Marçal de Lima Hokama -- ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Benchmark PostgreSQL x MySQL
2014-03-31 17:05 GMT-03:00 Marcal Hokama mhok...@hotmail.com: Só um detalhe no que o Fabio escreveu acima: a partir da versão 5.5 do MySQL o storage engine padrão do MySQL é o InnoDB, e não o MyISAM Meno male. Mas continua sendo proprietário (e pago) o componente de cópias de segurança a quente do InnoDB? Não se aplica diretamente ao assunto original, mas imagino que durante muitos e muitos anos ainda velhos programetas e ferramentas criados para MySQL ≤5.4, ou simplesmente codificados com a antiga mentalidade, causarão estragos ‘tuchando’ MyIsam indiscriminadamente. -- skype:leandro.gfc.dutra?chat Yahoo!: ymsgr:sendIM?lgcdutra +55 (61) 3546 7191 gTalk: xmpp:leand...@jabber.org +55 (61) 9302 2691ICQ/AIM: aim:GoIM?screenname=61287803 BRAZIL GMT−3 MSN: msnim:chat?contact=lean...@dutra.fastmail.fm ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral