In che misura il client Java MariaDB è un sostituto perfetto per MySQL JDBC (Connector / J)?


11

Premessa : invio un'applicazione Java che stabilirà una connessione JDBC a un database MySQL. (Al momento in cui scrivo potrebbe essere 5.1 o 5.5, ma si spera che la domanda e la risposta non facciano molto affidamento sulla versione.)

Osservazione : Chiaramente, posso usare il driver JDBC MySQL ( Connettore / J ) o il driver JDBC MariaDB ( client Java MariaDB ) per effettuare la connessione al server MySQL. Un enorme vantaggio dal punto di vista di un ISV è che il driver MariaDB ha la licenza LGPL mentre il driver MySQL ha la licenza GPL. Le prestazioni del driver MariaDB sembrano molto buone.

Domanda : In che misura il driver JDBC MariaDB è un sostituto perfetto per il driver JDBC MySQL?

Non sto cercando un dibattito sui meriti relativi dei due. Ma piuttosto spero che qualcuno possa rispondere sulla falsariga di uno di questi:

  • Il driver MariaDB JDBC ha problemi importanti con X e Y, quindi avrai problemi se usi uno di questi.
  • Basato su alcuni articoli o specifiche o codici o altre prove, il driver MariaDB JDBC implementa completamente [almeno] tutti i metodi disponibili nel driver MySQL. Starai bene.

Il client MariaDB gestisce le dichiarazioni preparate sul lato client. Potrebbe essere un problema.
Mat,

1
Posso aggiungere che non ho riscontrato alcun problema. Non è una risposta esaustiva, ma è un buon segno.
mdahlman,

Aggiornamento @Mat: da useServerPrepStmtsallora 1.3.0, poiché 1.6.0è disattivato per impostazione predefinita. Non ho idea del perché.
maaartinus,

Risposte:


6

Mi sto innervosendo un po '.

Innanzitutto, il lato positivo: ho usato il driver MariaDB JDBC in un servizio "sempre attivo" in produzione con un pool di connessioni al database e funziona bene da un paio di mesi. Il servizio utilizza solo funzioni JDBC di base con query semplici (ad es. Nessun join, nessun BLOB). Sto per rilasciare un altro servizio "sempre attivo" che utilizza il driver JDBC MariaDB in modo simile.
Ho deciso di utilizzare il driver JDBC MariaDB dopo aver (ri) visualizzato il codice sorgente: rispetto al codice sorgente del driver JDBC Oracle MySQL il codice sorgente del driver JDBC MariaDB è molto più leggibile e comprensibile.

Ma ho l'impressione che lo sviluppo (9/2014) sia rallentato (il collegamento è a un grafico che mostra i bug creati e risolti). Se sfoglio i bug aperti vedo molti bug gravi aperti per troppo tempo (problemi con Hibernate e anche fusi orari / date). Alcuni di questi potrebbero non essere bug, ma ormai avrebbero dovuto essere chiusi. Ho anche riscontrato un bug (tramite STASH-4012 ) che dovrebbe essere riaperto: il bug CONJ-72 è chiuso ma l'ultimo commento (dal 4/2014) indica che il problema non è stato risolto per Hibernate.

Tutto sommato, non considero il driver JDBC MariaDB un sostituto perfetto per il driver JDBC Oracle MySQL. Sono felice di continuare a usarlo per le cose semplici (in cui tutte le query sono note in anticipo e testate) per ora, ma in futuro potrei dover tornare al driver Oracle MySQL JDBC.


2
Sviluppo avviato nel novembre 2014. Fare clic sul collegamento "rallentato" nella risposta di vanOekel per un aggiornamento. C'è stata una nuova versione stabile a gennaio 2015.
David H. Bennett,

2

Un'altra cosa da tenere a mente è che non hai scelta se vuoi distribuire software non GPL. Se distribuisci software con una licenza diversa dalla GPL, Oracle potrebbe farti causa per violazione del copyright se utilizzi i suoi driver.


Hai una scelta. Puoi consegnare denaro a Oracle e ti permetteranno di usare il client con una licenza commerciale!
Josef dice di reintegrare Monica il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.