ไคลเอนต์ MariaDB Java เป็นสิ่งทดแทนที่สมบูรณ์แบบสำหรับ MySQL JDBC (Connector / J)?


11

สถานที่ : ฉันจัดส่งใบสมัคร Java ซึ่งจะทำให้การเชื่อมต่อ JDBC ไปยังฐานข้อมูล MySQL (ในช่วงเวลาของการเขียนนี้อาจเป็น 5.1 หรือ 5.5 แต่หวังว่าคำถามและคำตอบไม่ได้ขึ้นอยู่กับเวอร์ชันมาก)

การสังเกต : เห็นได้ชัดว่าฉันสามารถใช้ไดรเวอร์ MySQL JDBC ( Connector / J ) หรือไดรเวอร์ MariaDB JDBC ( ไคลเอนต์ MariaDB Java ) เพื่อเชื่อมต่อกับเซิร์ฟเวอร์ MySQL ข้อดีอย่างหนึ่งจากจุดยืนของ ISV คือไดรเวอร์ MariaDB นั้นได้รับใบอนุญาต LGPL ในขณะที่ MySQL เป็น GPL ที่ได้รับลิขสิทธิ์ ประสิทธิภาพของไดรเวอร์ MariaDBดูดีมาก

คำถาม : ไดร์เวอร์ MariaDB JDBC สามารถทดแทนไดร์เวอร์ MySQL JDBC ได้อย่างสมบูรณ์แบบเพียงใด?

ฉันไม่ได้มองหาข้อถกเถียงเกี่ยวกับข้อดีของทั้งสอง แต่ฉันหวังว่าจะมีใครบางคนสามารถตอบได้ตามหนึ่งในเหล่านี้:

  • ไดรเวอร์ MariaDB JDBC มีปัญหาที่สำคัญเกี่ยวกับ X และ Y ดังนั้นคุณจะมีปัญหาหากคุณใช้อย่างใดอย่างหนึ่งเหล่านี้
  • ตามบทความหรือข้อมูลจำเพาะหรือรหัสหรือหลักฐานอื่น ๆ ไดรเวอร์ MariaDB JDBC ใช้วิธีการทั้งหมดที่มีอยู่ในไดรเวอร์ MySQL อย่างน้อยที่สุด คุณจะสบายดี

ไคลเอนต์ MariaDB จัดการคำสั่งที่เตรียมไว้ในฝั่งไคลเอ็นต์ นั่นอาจเป็นปัญหา
Mat

1
ฉันสามารถเพิ่มที่ฉันไม่ได้พบปัญหาใด ๆ นั่นเป็นคำตอบที่ครอบคลุมแทบจะไม่ แต่มันเป็นสัญญาณที่ดี
mdahlman

@ ปรับปรุงข้อมูล: มีuseServerPrepStmtsตั้งแต่1.3.0เนื่องจาก1.6.0ปิดโดยค่าเริ่มต้น ไม่รู้ว่าทำไม
maaartinus

คำตอบ:


6

ฉันรู้สึกประหม่าเล็กน้อย

ข้อแรกข้อเสีย: ฉันเคยใช้ไดรเวอร์ MariaDB JDBC ในบริการ "เปิดอยู่เสมอ" ในการผลิตพร้อมกับพูลการเชื่อมต่อฐานข้อมูลและมันก็ทำงานได้ดีสำหรับสองสามเดือนแล้ว บริการนี้ใช้ฟังก์ชั่น JDBC พื้นฐานเท่านั้นพร้อมการสืบค้นง่ายๆ ฉันกำลังจะเปิดตัวบริการ "เปิดตลอด" อีกครั้งซึ่งใช้ไดรเวอร์ MariaDB JDBC ในลักษณะเดียวกัน
ฉันตัดสินใจใช้ไดรเวอร์ MariaDB JDBC หลังจาก (ดู) ซอร์สโค้ดใหม่: เปรียบเทียบกับซอร์สโค้ดของไดรเวอร์ Oracle MySQL JDBC ไดรเวอร์ MariaDB JDBC ซอร์สโค้ดสามารถอ่านและเข้าใจได้ง่ายขึ้น

แต่ฉันได้รับความประทับใจ (9/2014) การพัฒนาได้ชะลอตัวลง (ลิงก์คือกราฟที่แสดงข้อบกพร่องที่สร้างขึ้นและแก้ไขแล้ว) หากฉันเรียกดูข้อบกพร่องที่เปิดอยู่ฉันจะเห็นข้อบกพร่องร้ายแรงจำนวนมากที่เปิดไว้นานเกินไป (ปัญหาของ Hibernate และเขตเวลา / วันที่) สิ่งเหล่านี้บางอย่างอาจไม่ใช่ข้อบกพร่อง แต่ก็ควรปิดตัวลงในตอนนี้ ฉันยังพบข้อผิดพลาดหนึ่งรายการ (ผ่านSTASH-4012 ) ที่ควรเปิดใหม่: ข้อผิดพลาดCONJ-72ถูกปิด แต่ความคิดเห็นล่าสุด (จาก 4/2014) บ่งชี้ว่าปัญหาไม่ได้รับการแก้ไขสำหรับไฮเบอร์เนต

ทั้งหมดในทุกฉันไม่พิจารณาไดรเวอร์ MariaDB JDBC ทดแทนที่สมบูรณ์แบบสำหรับไดรเวอร์ Oracle MySQL JDBC ฉันมีความสุขที่จะใช้มันต่อไปเพื่อสิ่งง่าย ๆ (ซึ่งเป็นที่รู้กันว่าแบบสอบถามทั้งหมดก่อนและทดสอบ) ในตอนนี้ แต่ฉันอาจต้องเปลี่ยนกลับไปเป็นไดรเวอร์ Oracle MySQL JDBC ในอนาคต


2
การพัฒนาเริ่มขึ้นในเดือนพฤศจิกายน 2014 คลิกที่ลิงค์ 'ชะลอตัวลง' ในการตอบสนองของ vanOekel สำหรับการอัปเดต มีการเปิดตัวเสถียรภาพใหม่ในเดือนมกราคม 2558
David H. Bennett

2

สิ่งอื่นที่ควรทราบคือคุณไม่มีทางเลือกถ้าคุณต้องการแจกจ่ายซอฟต์แวร์ที่ไม่ใช่ GPL หากคุณแจกจ่ายซอฟต์แวร์ภายใต้ใบอนุญาตใด ๆ ยกเว้น GPL, Oracle สามารถฟ้องร้องคุณต่อการละเมิดลิขสิทธิ์หากคุณใช้ไดรเวอร์ของพวกเขา


คุณมีทางเลือก คุณสามารถมอบเงินให้แก่ Oracle และพวกเขาจะอนุญาตให้คุณใช้ลูกค้าที่มีใบอนุญาตการค้า!
Josef พูดว่า Reinstate Monica
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.