Насколько Java-клиент MariaDB является идеальной заменой JDBC для MySQL (Connector / J)?

11

Предпосылка : я поставляю приложение Java, которое установит соединение JDBC с базой данных MySQL. (На момент написания этой статьи это могло быть 5.1 или 5.5, но, надеюсь, вопрос и ответ не сильно зависят от версии.)

Замечание : Ясно, что я могу использовать драйвер MySQL JDBC ( Connector / J ) или драйвер MariaDB JDBC ( MariaDB Java Client ), чтобы установить соединение с сервером MySQL. Одним из огромных преимуществ с точки зрения ISV является то, что драйвер MariaDB лицензируется по лицензии LGPL, а драйвер MySQL - по лицензии GPL. Производительность драйвера MariaDB кажется очень хорошей.

Вопрос : Насколько драйвер JDBC MariaDB является идеальной заменой драйвера JDBC MySQL?

Я не ищу дебатов об относительных достоинствах этих двух. Но скорее я надеюсь, что кто-то может ответить в соответствии с одним из них:

  • Драйвер MariaDB JDBC имеет важные проблемы с X и Y, поэтому у вас будут проблемы, если вы будете использовать любой из них.
  • Основанный на некоторой статье или спецификации или коде или другом свидетельстве, драйвер JDBC MariaDB полностью реализует [по крайней мере] все методы, доступные в драйвере MySQL. Вам будет хорошо.
mdahlman
источник
Клиент MariaDB обрабатывает подготовленные операторы на стороне клиента. Это может быть проблемой.
Мат
1
Могу добавить, что я не столкнулся с какими-либо проблемами. Это вряд ли исчерпывающий ответ, но это хороший знак.
mdahlman
@ Мат Обновление: с useServerPrepStmtsтех пор 1.3.0, как 1.6.0он выключен по умолчанию. Понятия не имею почему.
Maaartinus

Ответы:

6

Я немного нервничаю.

Во-первых, положительный момент: я использовал драйвер JDBC MariaDB в «постоянно включенной» службе на производстве с пулом соединений с базой данных, и он работает нормально уже пару месяцев. Сервис использует только базовые функции JDBC с простыми запросами (например, без объединений, без BLOB-объектов). Я собираюсь выпустить еще один "всегда включенный" сервис, который аналогичным образом использует драйвер JDBC MariaDB.
Я решил использовать драйвер MariaDB JDBC после (повторного) просмотра исходного кода: по сравнению с исходным кодом драйвера Oracle MySQL JDBC исходный код драйвера MariaDB JDBC гораздо более читабелен и понятен.

Но у меня сложилось впечатление (9/2014) разработка замедлилась (ссылка на график, показывающий ошибки, созданные и устраненные). Если я просматриваю открытые ошибки, я вижу много серьезных ошибок, открытых слишком долго (проблемы с Hibernate, а также часовые пояса / даты). Некоторые из них, возможно, не являются ошибками, но тогда они уже должны были быть закрыты. Я также столкнулся с одной ошибкой (через STASH-4012 ), которая должна быть повторно открыта: ошибка CONJ-72 закрыта, но последний комментарий (от 4/2014) указывает, что проблема не решена для Hibernate.

В общем, я не считаю драйвер JDBC MariaDB идеальной заменой драйвера JDBC Oracle MySQL. Я рад продолжать использовать его для простых вещей (где все запросы заранее известны и проверены), но в будущем мне, возможно, придется вернуться к драйверу Oracle MySQL JDBC.

vanOekel
источник
2
Развитие началось в ноябре 2014 года. Нажмите на ссылку «замедление» в ответе vanOekel за обновлением. В январе 2015 года был выпущен новый стабильный выпуск.
Дэвид Х. Беннетт
2

Еще одна вещь, которую нужно иметь в виду, это то, что у вас нет выбора, если вы хотите распространять программное обеспечение не-GPL. Если вы распространяете программное обеспечение по какой-либо лицензии, кроме GPL, Oracle может подать в суд на вас за нарушение авторских прав, если вы используете их драйверы.

Деми
источник
У вас есть выбор. Вы можете передать деньги Oracle, и они позволят вам использовать клиента с коммерческой лицензией!
Джозеф говорит восстановить Монику