W jakim stopniu klient Java MariaDB jest doskonałym zamiennikiem MySQL JDBC (Connector / J)?


11

Przesłanka : Wysyłam aplikację Java, która nawiąże połączenie JDBC z bazą danych MySQL. (W chwili pisania tego tekstu może to być wersja 5.1 lub 5.5, ale mam nadzieję, że pytania i odpowiedzi nie zależą w dużej mierze od wersji.)

Uwaga : Oczywiście mogę użyć sterownika JDBC MySQL ( Connector / J ) lub sterownika JDBC MariaDB ( klient Java MariaDB ), aby nawiązać połączenie z serwerem MySQL. Ogromną korzyścią z punktu widzenia niezależnego dostawcy oprogramowania jest to, że sterownik MariaDB jest licencjonowany na licencji LGPL, podczas gdy sterownik MySQL jest licencjonowany na licencji GPL. Wydajność sterownika MariaDB wydaje się bardzo dobra.

Pytanie : W jakim stopniu sterownik JDBC MariaDB jest doskonałym zamiennikiem sterownika JDBC MySQL?

Nie szukam debaty na temat względnych zalet tych dwóch. Ale raczej mam nadzieję, że ktoś może odpowiedzieć na jedno z poniższych:

  • Sterownik JDBC MariaDB ma ważne problemy z X i Y, więc będziesz mieć problemy, jeśli użyjesz jednego z nich.
  • W oparciu o jakiś artykuł lub specyfikację, kod lub inne dowody sterownik MariaDB JDBC w pełni implementuje [przynajmniej] wszystkie metody dostępne w sterowniku MySQL. Wydobrzejesz.

Klient MariaDB obsługuje przygotowane wyciągi po stronie klienta. To może być problem.
Mat

1
Mogę dodać, że nie napotkałem żadnych problemów. To nie jest wyczerpująca odpowiedź, ale to dobry znak.
mdahlman,

@Mat Update: Jest useServerPrepStmtsod tego czasu 1.3.0, ponieważ 1.6.0jest domyślnie wyłączony. Nie mam pojęcia dlaczego.
maaartinus

Odpowiedzi:


6

Trochę się denerwuję.

Po pierwsze, zaletą: użyłem sterownika JDBC MariaDB w „zawsze włączonej” usłudze produkcyjnej z pulą połączeń z bazą danych i działa już dobrze od kilku miesięcy. Usługa korzysta tylko z podstawowych funkcji JDBC z prostymi zapytaniami (np. Bez połączeń, bez obiektów blob). Niedługo wypuszczę kolejną „zawsze włączoną” usługę, która korzysta ze sterownika JDBC MariaDB w podobny sposób.
Postanowiłem użyć sterownika JDBC MariaDB po (ponownym) przejrzeniu kodu źródłowego: w porównaniu do kodu źródłowego sterownika JDBC Oracle MySQL kod źródłowy JDBC MariaDB jest znacznie bardziej czytelny i zrozumiały.

Ale mam wrażenie, że rozwój (9/2014) zwolnił (link jest do wykresu pokazującego błędy utworzone i usunięte). Gdy przeglądam otwarte błędy , widzę wiele poważnych błędów otwartych o wiele za długo (problemy z Hibernacją, a także strefy czasowe / daty). Niektóre z nich mogą nie być błędami, ale powinny już zostać zamknięte. Napotkałem również jeden błąd (przez STASH-4012 ), który powinien zostać ponownie otwarty: błąd CONJ-72 jest zamknięty, ale ostatni komentarz (z 4/2014) wskazuje, że problem nie został rozwiązany w przypadku hibernacji.

Podsumowując, nie uważam sterownika MariaDB JDBC za idealny zamiennik sterownika Oracle MySQL JDBC. Cieszę się, że mogę go nadal używać do prostych czynności (gdzie wszystkie zapytania są wcześniej znane i testowane), ale w przyszłości będę musiał wrócić do sterownika JDBC Oracle MySQL.


2
Prace rozwojowe rozpoczęły się w listopadzie 2014 r. Kliknij link „spowolniony” w odpowiedzi vanOekel na aktualizację. W styczniu 2015 r. Pojawiła się nowa stabilna wersja.
David H. Bennett

2

Inną rzeczą, o której należy pamiętać, jest to, że nie masz wyboru, jeśli chcesz rozpowszechniać oprogramowanie inne niż GPL. Jeśli dystrybuujesz oprogramowanie na podstawie licencji innej niż GPL, Oracle może pozwać Cię za naruszenie praw autorskich, jeśli użyjesz ich sterowników.


Masz wybór. Możesz przekazać pieniądze Oracle, a one pozwolą ci używać klienta z licencją komercyjną!
Josef mówi: Przywróć Monikę
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.