web-dev-qa-db-ja.com

MariaDB JavaクライアントはMySQL JDBC(Connector / J)の完全な代替品ですか?)

前提:MySQLデータベースへのJDBC接続を行うJavaアプリケーションを出荷します。(この書き込みは5.1または5.5になる可能性がありますが、質問と回答がバージョンに大きく依存しないことを願っています。)

観察:明らかに、MySQL JDBCドライバー( Connector/J )またはMariaDB JDBCドライバー(- MariaDB Java Client )を使用してMySQLサーバーに接続します。ISVの観点からの大きな利点の1つは、MariaDBドライバーがLGPLライセンスであり、MySQLドライバーがGPLであることです。 MariaDBドライバのパフォーマンス は非常に良いようです。

質問:MariaDB JDBCドライバーは、MySQL JDBCドライバーの完全な代替品ですか?

私はこの2つの相対的なメリットについての議論を求めているのではありません。しかし、むしろ私は誰かがこれらのいずれかの線に沿って答えることができることを望んでいます:

  • MariaDB JDBCドライバーにはXとYに関する重要な問題があるため、これらのいずれかを使用すると問題が発生します。
  • 一部の記事、仕様、コード、またはその他の証拠に基づいて、MariaDB JDBCドライバーは、MySQLドライバーで利用可能なすべてのメソッドを(少なくとも)完全に実装します。大丈夫だよ。
11
mdahlman

少し緊張しています。

まず、良い点は、私はMariaDB JDBCドライバーをデータベース接続プールを使用する本番環境の「常時オン」サービスで使用しており、数か月間問題なく動作していることです。サービスは、単純なクエリで基本的なJDBC関数のみを使用します(例:結合なし、ブロブなし)。同様の方法でMariaDB JDBCドライバーを使用する別の「常時」サービスをリリースしようとしています。
ソースコードを(再)確認した後、MariaDB JDBCドライバーを使用することにしました。OracleMySQL JDBCドライバーのソースコードと比較して、MariaDB JDBCドライバーのソースコードは、はるかに読みやすく理解しやすくなっています。

しかし、私は(9/2014)開発には スローダウン の印象を与えます(リンクは、作成されたバグと解決されたバグを示すグラフへのリンクです)。 open bugs を参照すると、多くの深刻なバグが非常に長く開かれていることがわかります(Hibernateの問題とタイムゾーン/日付)。これらの一部はバグではない可能性がありますが、現在はクローズされているはずです。また、再度開く必要がある1つのバグ( STASH-4012 を介して)が発生しました。バグ CONJ-72 はクローズされていますが、最後のコメント(2014年4月から)は、 Hibernateの問題は解決されていません。

全体として、私はMariaDB JDBCドライバーをOracle MySQL JDBCドライバーの完全な代替品とは考えていません。今のところ、単純なもの(すべてのクエリが事前に認識され、テストされている)で引き続き使用できてうれしいですが、将来的には、Oracle MySQL JDBCドライバーに戻す必要があるかもしれません。

6
vanOekel

GPL以外のソフトウェアを配布する場合は、選択の余地なしを使用することを忘れないでください。 GPL以外のライセンスに基づいてソフトウェアを配布した場合、そのドライバを使用すると、オラクルは著作権侵害を訴える可能性があります。

2
Demi