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.
useServerPrepStmts
Desde então1.3.0
, uma vez1.6.0
que está desativado por padrão. Não faço ideia do porquê.Respostas:
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.
fonte
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.
fonte