Benchmark - mysql x postgresql

Resolvi fazer um benchmark para testar os dois banco de dados. O resultado é tão :shock: que resolvi parar meus testes apartir do primeiro resultado com o postgresql.

PC: Sempron64 2500+ (1.4ghz) com mysql 5.0 e postgresql 8.1.4, windows xp.

O teste é simples:

[quote] for(int i=1; i < 100000; ++i) {
StringBuffer executa = new StringBuffer(“INSERT INTO “+ database +””);
executa.append(" (nome,endereco,telefone) “);
executa.append(” VALUES ("+ i +","+ i +","+ i +");");
entao.execute(executa.toString());
}
[/quote]

Ver em quanto tempo era registrado 100.000 linhas.

mysql -> 47/48 minutos.
postgresql -> 3 minutos.

não acreditei… deixei rodando denovo em cima de uma tabela no mysql, 3/4 minutos depois ele estava no 3000 ainda…

levando em consideração que, meu sistema iniciava com 24mbs usados, debian, logo depois que instalei mysql ele passou a iniciar com 74mbs, 50mbs somente para o mysql e o postgresql eu não consegui notar diferença depois que o instalei, continuava iniciando a 74mbs.

:wink:

essa linhas tinham quantas colunas?

Porque eu tinha feito um programinha de benchmark do sql server, ele inseria 50 mil linhas em menos de 30 segundos com aproximadamente 15 colunas :open_mouth: (Obs.: local)

Olá KoIT,

O tipo MyISAM constuma ser manipulado com maior velocidade que o tipo ACID.

Algum motivo especial para uma diferença tão absurda?

execute esse comando na sua tabela e se surpreenda

ALTER TABLE `$databasename`.`$tablename` ENGINE = MYISAM
ROW_FORMAT = DYNAMIC;

isso acontece por que o tipo innoDB é usando com suporte a transacao, entao ele faz um monte de verificacoes antes de inserir o dado.

ps. na verdade vc esta inserindo 99999 registros :wink:

Er… exatamente que tipo de performance vc ta querendo medir?

Ate onde eu me lembre, a gigantesca maioria das aplicacoes depende muito mais de SELECTs do que INSERTs ou UPDATEs - depois, se vc quer fazer o PostgreSQL voar na insercao de dados em massa, da uma olhada no comando COPY.