Pessoal,
qual vcs recomendam? Derby ou HSQLDB.
Minha aplicação necessita de robustez, performance e estabilidade. Qual é a melhor opção?
performance
+HSQLDB
-Derby
+PostgreSQL
Estabilidade
+Derby
+HSQLDB
+PostgreSQL
Robustez
+Derby
-HSQLDB
+PostgreSQL
Resumindo, é melhor vc usar um RDBMS Full 8)
PS: Minha opinião :mrgreen:
Eu tenho usado o HSQLDB para testes de integração com sucesso, porém em um ambiente de produção, eu escolheria um RDBMS Full como o amigo disse.
A dica é, se você está usando Hibernate por exemplo, não se preocupe com o banco de dados, pois mudá-lo no futuro é bastante simples
O ambiente é de produção sim, mas não pretendo usar um RDBMS Full, pois tenho poucas tabelas (10 no total). Eu estava usando o H2, que é baseado a mesma engine do HSQLDB (Hypersonic), o problema é que ele tem um bug: quando a aplicação tem um pico de acessos ao banco de dados, inserindo e deletando registros com chaves primarias compostas, o tamanho do arquivo de índices vai para o espaço (fica mto grande, pra mais de GB), por isso quero trocar o banco. Estou com medo fazer as alterações para usar o HSQLDB e ele ter o mesmo problema, por ser baseado na mesma engine do H2. Em termos de performance, o derby perde mto para o HSQLDB?
Faço coro a opinião do pessoal.
Derby está fora de cogitação. Além do jar ser muito maior, os arquivos do banco ficam enormes. Nesse ponto o HSQLDB está mais a frente. O jar é super pequeno e os arquivos gerados são suuper pequenos.
Estou agora desenvolvendo uma aplicação com Hib, Spring e Vraptor. E nela estou usando por enquando HSQLDB por ser muito rápida e não precisar de daemon algum rodando. Estou usando ele em modo embeded, então quando subo a aplicação, automaticamente o banco está ON.
Obviamente quando eu colocar em produção a escolha será pelo postgres. Como usei hibernate padrão basta alterar o driver do datasource e o dialect no hibernate.
Sinceramente não vejo com bons olhos usar bancos como h2, derby e hsqlbd em aplicações com muitos acessos e em ambientes de produção.
Quais são as vantagens do postgreSQL?
O Derby me passa confiança, por ser inicialemnte da IBM, e agora, mantido pela Apache.
Mas realmente, o HSQLDB é mto mais simples de se implantar do que o Derby.
Sinceramente, não sei qual usar ainda. A melhor opção seria usar o hibernate, e fazer uma POC com varios bancos, e ai ver qual é o melhor…
Eu por muito tempo usei MySQL. É um bom banco, porém tem um suporte a meu ver fraco para procedures, não possui sequence, e as trigger necessitam permissões de root. E eu não me agrado do engine innoDB. E lembrando que essas features avançadas são bem novas no MySQL. A pouco tempo atrás nada disso existia, nem sequer foreign keys.
O postgresql já existe há muito tempo, é fortemente mantido pela comunidade e possui todas as funcionalidades do Oracle. Digo, pelo menos as normalmente usadas. Muitas funcionalidades do Oracle estão alí e nunca são usadas. As que sempre precisei são amplamente suportadas pelo pgsql como sequences, triggers, views, procedures; além de suporte a replicação, cluster e tudo mais… Dá até para escrever procedures em pgsql, Java e Perl (tem mais ainda). Uma coisa interessante é que existem até mesmo tipos para endereços de IP, redes…
Oracle… bem, esse nem preciso falar. É bom, mas custa caro e exige muita máquina. Preciso seu “primo” PostgreSQL.
E voltando aos bancos em Java, fiquei fã do HSQLDB depois que usei em um projeto de testes. É muito pequeno (o JAR) e tem praticamente todas as funcionalidades usadas. Ainda não criei procedures para ele, nem sequer lí como se faz, se é em Java ou outra coisa. Mas senti que ele é um banco muito bom, mas como não o conheço a fundo, ainda prefiro não usar em ambiente de produção.
A graande vantagem que achei é ter um “banco em um pendrive”