Até que ponto o cliente Java do MariaDB é um substituto perfeito para o MySQL JDBC (Connector / J)?

11

Premissa : Eu envio um aplicativo Java que fará uma conexão JDBC com um banco de dados MySQL. (No momento da redação deste artigo, poderia ser 5.1 ou 5.5, mas espero que a pergunta e a resposta não dependam muito da versão.)

Observação : Claramente, posso usar o driver JDBC MySQL ( Connector / J ) ou o driver JDBC MariaDB ( MariaDB Java Client ) para fazer a conexão com o servidor MySQL. Um grande benefício do ponto de vista de um ISV ​​é que o driver MariaDB é licenciado por LGPL enquanto o driver MySQL é licenciado por GPL. O desempenho do driver MariaDB parece muito bom.

Pergunta : Até que ponto o driver JDBC MariaDB é um substituto perfeito para o driver JDBC MySQL?

Não estou à procura de um debate sobre os méritos relativos dos dois. Mas espero que alguém possa responder da mesma maneira:

  • O driver JDBC do MariaDB tem problemas importantes com X e Y; portanto, você terá problemas se usar um desses.
  • Com base em algum artigo ou especificação ou código ou outra evidência, o driver MariaDB JDBC implementa [pelo menos] todos os métodos disponíveis no driver MySQL. Você vai ficar bem.
mdahlman
fonte
O cliente MariaDB manipula instruções preparadas no lado do cliente. Isso pode ser um problema.
Mat
1
Posso acrescentar que não encontrei nenhum problema. Essa dificilmente é uma resposta abrangente, mas é um bom sinal.
precisa saber é o seguinte
@ Mat Update: useServerPrepStmtsDesde então 1.3.0, uma vez 1.6.0que está desativado por padrão. Não faço ideia do porquê.
Maaartinus

Respostas:

6

Estou ficando um pouco nervoso.

Primeiro, o lado positivo: usei o driver MariaDB JDBC em um serviço "sempre ativo" em produção com um pool de conexão com o banco de dados e ele está funcionando bem há alguns meses. O serviço usa apenas funções JDBC básicas com consultas simples (por exemplo, sem junções, sem blobs). Estou prestes a lançar outro serviço "sempre ativo" que usa o driver JDBC MariaDB de maneira semelhante.
Decidi usar o driver MariaDB JDBC após (re) visualizar o código fonte: comparado ao código fonte Oracle MySQL JDBC, o código fonte MariaDB JDBC é muito mais legível e compreensível.

Mas tenho a impressão (9/2014) de que o desenvolvimento ficou mais lento (o link está para um gráfico que mostra os bugs criados versus os resolvidos). Se eu navego pelos bugs abertos , vejo muitos bugs sérios abertos por muito tempo (problemas com o Hibernate e também fusos horários / datas). Alguns deles podem não ser bugs, mas deveriam estar fechados agora. Também encontrei um bug (via STASH-4012 ) que deveria ser reaberto: o bug CONJ-72 está fechado, mas o último comentário (de 4/2014) indica que o problema não foi resolvido no Hibernate.

Em suma, não considero o driver JDBC MariaDB um substituto perfeito para o driver JDBC Oracle MySQL. Estou feliz em continuar a usá-lo para coisas simples (onde todas as consultas são conhecidas e testadas anteriormente) por enquanto, mas talvez eu precise voltar ao driver JDBC Oracle MySQL no futuro.

vanOekel
fonte
2
Desenvolvimento iniciado em novembro de 2014. Clique no link 'abrandou' na resposta da vanOekel para obter uma atualização. Houve uma nova versão estável em janeiro de 2015.
David H. Bennett
2

Outra coisa a ter em mente é que você não tem escolha se deseja distribuir software que não seja GPL. Se você distribuir software sob qualquer licença, exceto a GPL, a Oracle poderá processá-lo por violação de direitos autorais se você usar os drivers.

Demi
fonte
Você tem uma escolha. Você pode entregar dinheiro à Oracle e eles permitirão que você use o cliente com uma licença comercial!
Josef diz Restabelecer Monica