MariaDB Java客户端在多大程度上可以完美替代MySQL JDBC(Connector / J)?


11

前提:我提供了一个Java应用程序,该应用程序将与MySQL数据库建立JDBC连接。(在撰写本文时,它可能是5.1或5.5,但希望问题和答案不会严重依赖该版本。)

观察:显然,我可以使用MySQL JDBC驱动程序(Connector / J)或MariaDB JDBC驱动程序(MariaDB Java Client)建立与MySQL服务器的连接。从ISV的角度来看,一个巨大的好处是MariaDB驱动程序是LGPL许可的,而MySQL驱动程序是GPL的许可的。MariaDB驱动程序的性能似乎非常好。

问题:MariaDB JDBC驱动程序在多大程度上可以完美替代MySQL JDBC驱动程序?

我不是要就两者的相对优点进行辩论。但是,我希望有人可以按照以下其中一种方式回答:

  • MariaDB JDBC驱动程序在X和Y方面存在重要问题,因此,如果使用其中任何一个,都会遇到麻烦。
  • 根据一些文章或规范,代码或其他证据,MariaDB JDBC驱动程序完全实现[至少] MySQL驱动程序中可用的所有方法。你会没事的。

MariaDB客户端在客户端处理准备好的语句。那可能是个问题。
2013年

1
我可以补充一点,我还没有遇到任何问题。这不是一个全面的答案,但这是一个好兆头。
mdahlman 2013年

@Mat更新:useServerPrepStmts自以来存在1.3.0,因为1.6.0默认情况下处于关闭状态。不知道为什么。
maaartinus

Answers:


6

我有点紧张。

首先,好处是:我已经在生产中的“始终在线”服务中使用了MariaDB JDBC驱动程序,该驱动程序带有数据库连接池,并且几个月来运行良好。该服务仅使用具有简单查询(例如,无联接,无斑点)的基本JDBC函数。我将要发布另一个以类似方式使用MariaDB JDBC驱动程序的“始终在线”服务。
在(重新)查看源代码之后,我决定使用MariaDB JDBC驱动程序:与Oracle MySQL JDBC驱动程序源代码相比,MariaDB JDBC驱动程序源代码更具可读性和可理解性。

但是我得到的印象是(9/2014)开发速度放慢了(链接是一个图表,显示了已创建的错误与已解决的错误)。如果浏览所有打开的错误,就会发现许多严重的错误打开的时间过长(与Hibernate有关的问题以及时区/日期)。其中一些可能不是bug,但现在应该已经将其关闭。我还遇到了一个错误(通过STASH-4012)应重新打开:错误CONJ-72已关闭,但最后一条评论(来自4/2014)表明该问题尚未针对Hibernate解决。

总而言之,我认为MariaDB JDBC驱动程序不能替代Oracle MySQL JDBC驱动程序。我很高兴现在可以继续将其用于简单的东西(所有查询都是事先已知的并经过测试),但是将来我可能不得不切换回Oracle MySQL JDBC驱动程序。


2
开发于2014年11月开始。点击vanOekel回复中的“慢速”链接进行更新。2015
David H. Bennett

2

要记住的另一件事是,如果您要分发非GPL软件,则别无选择。如果您以GPL以外的任何许可证分发软件,则Oracle可能会起诉您侵犯其版权,如果您使用其驱动程序。


您可以选择。您可以将钱交给Oracle,他们将允许您使用具有商业许可的客户端!
约瑟夫(Josef)说,莫妮卡(Monica)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.