Máy khách MariaDB Java ở mức độ nào là sự thay thế hoàn hảo cho MySQL JDBC (Trình kết nối / J)?


11

Tiền đề : Tôi gửi một ứng dụng Java sẽ tạo kết nối JDBC tới cơ sở dữ liệu MySQL. (Tại thời điểm viết bài này, nó có thể là 5.1 hoặc 5.5, nhưng hy vọng câu hỏi và câu trả lời không phụ thuộc nhiều vào phiên bản.)

Quan sát : Rõ ràng, tôi có thể sử dụng trình điều khiển JDBC của MySQL ( Trình kết nối / J ) hoặc trình điều khiển JDBC MariaDB ( Máy khách Java MariaDB ) để thực hiện kết nối với máy chủ MySQL. Một lợi ích rất lớn từ quan điểm của ISV là trình điều khiển MariaDB được cấp phép LGPL trong khi trình điều khiển MySQL được cấp phép GPL. Hiệu suất của trình điều khiển MariaDB có vẻ rất tốt.

Câu hỏi : Trình điều khiển JDBC MariaDB ở mức độ nào là sự thay thế hoàn hảo cho trình điều khiển JDBC của MySQL?

Tôi không tìm kiếm một cuộc tranh luận về giá trị tương đối của hai người. Nhưng đúng hơn là tôi hy vọng ai đó có thể trả lời theo một trong những điều sau:

  • Trình điều khiển JDBC MariaDB có vấn đề quan trọng với X và Y, vì vậy bạn sẽ gặp rắc rối nếu bạn sử dụng một trong hai.
  • Dựa trên một số bài viết hoặc đặc tả hoặc mã hoặc bằng chứng khác, trình điều khiển JDBC MariaDB thực hiện đầy đủ [ít nhất] tất cả các phương thức có sẵn trong trình điều khiển MySQL. Bạn sẽ ổn thôi.

Máy khách MariaDB xử lý các câu lệnh được chuẩn bị ở phía máy khách. Đó có thể là một vấn đề.
Mat

1
Tôi có thể thêm rằng tôi đã không gặp phải bất kỳ vấn đề. Đó không phải là một câu trả lời toàn diện, nhưng đó là một dấu hiệu tốt.
mdahlman

@Mat Cập nhật: Có useServerPrepStmtstừ 1.3.0, vì 1.6.0nó tắt theo mặc định. Không biết tại sao.
maaartinus

Câu trả lời:


6

Tôi đang có một chút lo lắng.

Đầu tiên, mặt trái: Tôi đã sử dụng trình điều khiển JDBC MariaDB trong dịch vụ "luôn bật" trong sản xuất với nhóm kết nối cơ sở dữ liệu và nó đang hoạt động tốt trong vài tháng nay. Dịch vụ chỉ sử dụng các hàm JDBC cơ bản với các truy vấn đơn giản (ví dụ: không tham gia, không có đốm màu). Tôi sắp phát hành một dịch vụ "luôn bật" khác sử dụng trình điều khiển JDBC MariaDB theo cách tương tự.
Tôi đã quyết định sử dụng trình điều khiển JDBC MariaDB sau khi (xem lại) mã nguồn: so với mã nguồn trình điều khiển JDBC của Oracle MySQL, mã nguồn trình điều khiển JDBC MariaDB dễ đọc và dễ hiểu hơn rất nhiều.

Nhưng tôi nhận được sự phát triển ấn tượng (9/2014) đã chậm lại (liên kết là một biểu đồ hiển thị các lỗi được tạo so với giải quyết). Nếu tôi duyệt qua các lỗi mở, tôi thấy nhiều lỗi nghiêm trọng mở quá lâu (các vấn đề với Hibernate và cả múi giờ / ngày). Một số trong số này có thể không phải là lỗi nhưng sau đó chúng đã bị đóng. Tôi cũng gặp phải một lỗi (thông qua STASH-4012 ) cần được mở lại: lỗi CONJ-72 đã bị đóng nhưng nhận xét cuối cùng (từ 4/2014) cho thấy sự cố không được giải quyết cho Hibernate.

Nói chung, tôi không coi trình điều khiển JDBC MariaDB là sự thay thế hoàn hảo cho trình điều khiển JDBC của Oracle MySQL. Tôi rất vui khi tiếp tục sử dụng nó cho những thứ đơn giản (nơi mà tất cả các truy vấn đã được biết trước và đã được kiểm tra) bây giờ, nhưng tôi có thể phải quay lại trình điều khiển JDBC của Oracle trong tương lai.


2
Phát triển được chọn vào tháng 11 năm 2014. Nhấp vào liên kết 'chậm lại' trong phản hồi của vanOekel để cập nhật. Có một bản phát hành ổn định mới vào tháng 1 năm 2015.
David H. Bennett

2

Một điều khác cần lưu ý là bạn không có lựa chọn nào nếu bạn muốn phân phối phần mềm không GPL. Nếu bạn phân phối phần mềm theo bất kỳ giấy phép nào ngoài GPL, Oracle có thể kiện bạn vi phạm bản quyền nếu bạn sử dụng trình điều khiển của họ.


Bạn có một sự lựa chọn. Bạn có thể giao tiền cho Oracle và họ sẽ cho phép bạn sử dụng máy khách với giấy phép thương mại!
Josef nói Phục hồi Monica
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.