MariaDB และ MySQL แตกต่างกันอย่างไร

MySQL และ MariaDB เป็นทั้งเทคโนโลยีฐานข้อมูลแบบโอเพนซอร์ส คุณสามารถใช้เพื่อจัดเก็บข้อมูลในรูปแบบตารางที่มีแถวและคอลัมน์ MySQL เป็นฐานข้อมูลโอเพนซอร์สที่ได้รับการยอมรับอย่างกว้างขวางที่สุด และเป็นฐานข้อมูลแบบเชิงสัมพันธ์หลักสำหรับเว็บไซต์ แอปพลิเคชัน และผลิตภัณฑ์เชิงพาณิชย์ยอดนิยมมากมาย MariaDB ก็คือ MySQL เวอร์ชันที่ได้รับการแก้ไขแล้ว MariaDB ถูกสร้างขึ้นโดยทีมพัฒนาดั้งเดิมของ MySQL เนื่องจากมีข้อกังวลด้านสิทธิ์ใช้งานและการเผยแพร่หลังจากที่ Oracle Corporation ซื้อ MySQL ไป นับตั้งแต่การเข้าซื้อกิจการ MySQL และ MariaDB ก็มีการพัฒนาที่แตกต่างกันออกไป อย่างไรก็ตาม MariaDB ยังคงใช้ข้อมูลและไฟล์คำจำกัดความตาราง ตลอดจนโปรโตคอลไคลเอ็นต์, API ไคลเอ็นต์, พอร์ต และซ็อกเก็ตเดียวกันกับ MySQL ทั้งนี้มีวัตถุประสงค์เพื่อให้ผู้ใช้ MySQL เปลี่ยนไปใช้ MariaDB ได้โดยไม่ยุ่งยาก

อ่านเกี่ยวกับ MySQL »

อะไรคือความคล้ายคลึงกันระหว่าง MariaDB และ MySQL

MySQL เป็นระบบจัดการฐานข้อมูลแบบเชิงสัมพันธ์ที่เปิดตัวในปี 1995 ในปี 2009 นักพัฒนาได้เผยแพร่ MariaDB เป็นโค้ดแยกของ MySQL 5.1.38

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

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

การปฏิบัติตามข้อกำหนด ACID

Atomicity, Consistency, Isolation และ Durability (ACID) คือหลักการสำคัญ 4 ประการที่ทำให้ธุรกรรมฐานข้อมูลมีความเสถียร ทั้ง MySQL และ MariaDB ล้วนปฏิบัติตามหลักการเหล่านี้ ด้วยการปฏิบัติตาม ACID ฐานข้อมูลทั้งสองจะสามารถรักษาความถูกต้องและความสมบูรณ์ของข้อมูลเอาไว้ได้

ความเข้ากันได้ของ SQL

MySQL และ MariaDB เป็นฐานข้อมูลแบบเชิงสัมพันธ์ที่จัดระเบียบข้อมูลลงในตาราง ทั้ง MariaDB และ MySQL ใช้ SQL เพื่อจัดการและสืบค้นข้อมูล โดยในระบบเหล่านี้ คุณจะสามารถใช้คำสั่งเดียวกันได้หลายคำสั่ง

อ่านเพิ่มเติมเกี่ยวกับ SQL »

ทั้ง MySQL และ MariaDB เก็บข้อมูลเป็นตารางแบบเชิงสัมพันธ์ด้วยอินเตอร์เฟส SQL

ซอฟต์แวร์โอเพนซอร์ส

ในฐานะที่เป็นระบบจัดการฐานข้อมูลแบบเชิงสัมพันธ์แบบโอเพนซอร์ส ทั้ง MySQL และ MariaDB ถือเป็นความพยายามร่วมกันที่มาจากชุมชนของนักพัฒนา และซอร์สโค้ดของพวกเขาก็มีให้บริการแก่สาธารณะแล้ว

ฐานข้อมูล MySQL มีเวอร์ชันโอเพนซอร์สเต็มรูปแบบหนึ่งเวอร์ชัน ซึ่งเผยแพร่ภายใต้ General Public License (GPL) นอกจากนี้ยังมีเวอร์ชันองค์กรแบบชำระเงินอีกหนึ่งรุ่นที่มาพร้อมกับคุณสมบัติและการรองรับที่มากขึ้น MariaDB เป็นโอเพนซอร์สแบบเต็มรูปแบบบน GitHub

การรักษาความปลอดภัย

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

ความแตกต่างที่สำคัญระหว่าง MariaDB กับ MySQL

นับตั้งแต่ที่แยกออกจาก MySQL มา MariaDB ก็ได้ขยายขีดความสามารถขึ้นอย่างต่อเนื่อง การเปลี่ยนแปลงบางส่วนเหล่านี้ได้นำไปสู่ฟังก์ชันการใช้งานหลัก ความสามารถ และความแตกต่างด้านประสิทธิภาพหลายประการ

คือความแตกต่างหลักระหว่าง MySQL และ MariaDB มีดังนี้

การจัดการข้อมูล JSON

ทั้ง MariaDB และ MySQL รองรับการดึงและจัดเก็บข้อมูล JSON แต่ทั้งสองระบบจะจัดเก็บรายงาน JSON ด้วยวิธีต่างกัน MariaDB จัดเก็บรายงาน JSON ในรูปแบบสตริง ในขณะที่ MySQL จัดเก็บเป็นอ็อบเจกต์แบบไบนารี

อีกทั้ง MySQL และ MariaDB ยังไม่รองรับฟังก์ชัน JSON ทั้งหมดทุกฟังก์ชัน MariaDB รองรับ JSON_QUERY และ JSON_EXISTS ในขณะที่ MySQL ไม่รองรับ เช่นเดียวกันที่ MySQL รองรับประเภทข้อมูล JSON แบบดั้งเดิม JSON_TABLE ที่ MariaDB ไม่รองรับ

อย่างไรก็ตาม MariaDB รองรับเฉพาะประเภทข้อมูล JSON ตั้งแต่เวอร์ชัน 10.2 ขึ้นไปเท่านั้น ประเภทข้อมูล JSON ที่ MariaDB ใช้งานเป็นนามแฝงสำหรับ LONGTEXT

ฟังก์ชันการใช้งาน

เนื่องจากเส้นทางการพัฒนาของพวกเขาแตกต่างกัน ตอนนี้ MariaDB และ MySQL จึงนำเสนอฟังก์ชันการทำงานที่แตกต่างกันอยู่เล็กน้อย

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

ในทางตรงกันข้าม MariaDB จะรองรับคอลัมน์ที่ไม่สามารถมองเห็นได้ในมุมมองฐานข้อมูล คอลัมน์ที่ไม่สามารถมองเห็นได้จะไม่ปรากฏขึ้นเมื่อผู้ใช้ดำเนินการคำสั่ง SELECT หรือขอค่าในคำสั่ง INSERT

การยืนยันตัวตนผู้ใช้

MySQL มีองค์ประกอบ validate_password ที่คุณสามารถใช้เพื่อเพิ่มความปลอดภัยของรหัสผ่านได้

MariaDB จะไม่มีสิ่งนี้ตามค่าเริ่มต้น แต่จะมีปลั๊กอินตัวตรวจสอบความถูกต้องอยู่สามตัว คุณสามารถใช้ปลั๊กอินตัวตรวจสอบรหัสผ่านเหล่านี้เพื่อเพิ่มการป้องกันเพิ่มเติมเกี่ยวกับรหัสผ่าน ในเวอร์ชัน 10.4 MariaDB ได้นำเสนอปลั๊กอินการตรวจสอบสิทธิ์ ed25519 เพื่อแทนที่การตรวจสอบสิทธิ์ SHA-1 ที่ใช้กันก่อนหน้านี้ วิธีนี้จะช่วยในการรับรองความถูกต้องของผู้ใช้และจัดเก็บรหัสผ่านอย่างปลอดภัย 

การเข้ารหัส

MySQL และ MariaDB จะเข้ารหัสทั้งข้อมูลที่อยู่ในพื้นที่จัดเก็บและข้อมูลที่อยู่ระหว่างการโอนย้าย

MySQL ช่วยให้ผู้ดูแลระบบสามารถกำหนดค่าและเข้ารหัสทำซ้ำและเลิกทำกับข้อมูลบันทึกได้ แต่จะไม่เข้ารหัสพื้นที่ตารางแบบชั่วคราวหรือข้อมูลบันทึกแบบไบนารี

ในทางกลับกัน MariaDB จะรองรับการเข้ารหัสข้อมูลบันทึกแบบไบนารีและการเข้ารหัสตารางแบบชั่วคราว 

การรวมเธรด

การรวมเธรดจะช่วยให้ฐานข้อมูลสามารถเพิ่มประสิทธิภาพทรัพยากรโดยจับคู่การเชื่อมต่อใหม่กับเธรดที่มีอยู่แล้ว ความจุกลุ่มเธรดที่สูงมีความสำคัญสำหรับแอปพลิเคชันที่ต้องการปรับขนาดและให้บริการผู้ใช้หลายพันคนพร้อมกัน

MariaDB มีการรวมเธรดในปลั๊กอินกลุ่มเธรดซึ่งเป็นส่วนหนึ่งของเวอร์ชัน Community Edition MariaDB มอบความสามารถในการจัดการการเชื่อมต่อมากกว่า 200,000 รายการพร้อมกัน

MySQL มีปลั๊กอินกลุ่มเธรดในเวอร์ชัน Enterprise แต่จะไม่สามารถจัดการการเชื่อมต่อได้มากเท่ากับที่ MariaDB ทำได้

เมื่อใดควรเลือกใช้ MariaDB เทียบกับ MySQL

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

อย่างไรก็ตาม MySQL มีมานานกว่า MariaDB มาก บางองค์กรต้องการการสนับสนุนองค์กรที่ MySQL มีให้

ในลำดับต่อไป เราจะแสดงถึงข้อควรพิจารณาในการเลือกระหว่างฐานข้อมูลทั้งสองแบบ

เอนจินจัดเก็บข้อมูล

ในระบบการจัดการฐานข้อมูล เอนจินการจัดเก็บข้อมูลเป็นส่วนประกอบที่ช่วยในการเรียกใช้ ปรับปรุง และจัดเก็บข้อมูลภายในฐานข้อมูล เอนจินการจัดเก็บข้อมูลที่คุณต้องการใช้งานอาจจะส่งผลต่อการตัดสินใจของคุณ

คุณสามารถใช้เอนจินการจัดเก็บข้อมูลได้หลายตัวได้ทั้งบน MySQL และ MariaDB แต่บน MySQL จะมีตัวเลือกน้อยกว่า เอนจินจัดเก็บข้อมูลของ MySQL มีดังนี้ InnoDB, CSV, Federated, MyISAM, Merge และ Federated เป็นต้น

MariaDB รองรับเอนจินการจัดเก็บข้อมูลบางตัวที่ MySQL ไม่รองรับ เช่น XtraDB, Aria, InnoDB, MariaDB ColumnStore, Memory, Cassandra และ Connect

ใบอนุญาต

MariaDB และ MySQL มีเวอร์ชัน General Public License (GPL) MariaDB อยู่ภายใต้การอนุญาต GPL โดยสมบูรณ์ ในขณะที่ MySQL มีใบอนุญาตสองใบที่พร้อมใช้งาน ได้แก่ แบบสาธารณะและแบบส่วนตัว

สิทธิ์การใช้งาน MySQL เวอร์ชัน Enterprise Edition แบบส่วนตัวจะปลดล็อกความสามารถที่มากขึ้น เช่น การรวมเธรด ซึ่งจะช่วยเร่งความเร็วในการสืบค้น บริษัทที่ต้องการเผยแพร่ซอฟต์แวร์ MySQL โดยไม่เผยแพร่ซอร์สโค้ดภายใต้ GPL อาจจะถูกใจกับ MySQL เวอร์ชัน Enterprise Edition มากกว่า

ความเข้ากันได้ของฐานข้อมูล Oracle

ความเข้ากันได้ของฐานข้อมูล Oracle คือความสามารถของฐานข้อมูล Oracle ในการทำงานร่วมกับแอปพลิเคชันที่สร้างด้วยฐานข้อมูล MariaDB หรือ MySQL

หากองค์กรของคุณใช้ผลิตภัณฑ์ฐานข้อมูล Oracle อยู่แล้ว คุณอาจจะต้องการใช้งาน MySQL ฐานข้อมูล Oracle มีโหมดความเข้ากันได้เฉพาะสำหรับไวยากรณ์ SQL ที่มีเฉพาะใน MySQL อย่างไรก็ตาม MySQL จะไม่รองรับ PL/SQL ซึ่งเป็นภาษาเชิงแอปพลิเคชันที่ Oracle ได้พัฒนาขึ้น

แต่ MariaDB นั้นรองรับ PL/SQL ตั้งแต่เวอร์ชัน 10.3 เป็นต้นมา นอกจากนี้ MariaDB ยังมีโหมดความเข้ากันได้ทางไวยากรณ์ของ Oracle สำหรับการเรียกใช้แอปพลิเคชันฐานข้อมูล Oracle โดยไม่มีการเปลี่ยนแปลงอีกด้วย

ความเร็วและประสิทธิภาพ

เป็นเวลาหลายปีแล้วที่ MySQL มีประสิทธิภาพเหนือกว่า MariaDB ในด้านการใช้งานในหลายกรณี ตัวอย่างเช่น MySQL 8.0 สามารถจัดการการสืบค้นต่อวินาทีได้มากกว่า MariaDB เวอร์ชัน 10.3 อย่างไรก็ตาม MariaDB ก็ได้ทำการปรับปรุงมากมายในช่วงหลายปีที่ผ่านมาเช่นกัน

ในปัจจุบัน MariaDB นั้นมีความรวดเร็วกว่าในแง่ของการดำเนินการสืบค้นและการจำลองแบบ คุณอาจต้องการใช้งาน MariaDB ในการจัดการกับเวิร์กโหลดที่เน้นประสิทธิภาพมากกว่า

คุณสามารถเปลี่ยนจาก MySQL เป็น MariaDB ได้หรือไม่

ใช่ คุณสามารถย้ายจาก MySQL ไปยัง MariaDB ได้อย่างง่ายดาย MariaDB ได้รับการออกแบบให้เข้ากันได้กับ MySQL รุ่นเก่า ซึ่งหมายความว่าแอปพลิเคชันและสคริปต์ที่เขียนขึ้นสำหรับ MySQL ควรสามารถทำงานร่วมกับ MariaDB ได้โดยไม่มีการเปลี่ยนแปลงในจุดสำคัญ 

จนถึง MariaDB 5.5 เซิร์ฟเวอร์ MariaDB ทำตามสคีมาการกำหนดหมายเลขเวอร์ชันของ MySQL โดยมุ่งเป้าไปที่ความเข้ากันได้แบบดร็อปอิน (Drop-in Compatibility) กับ MySQL เวอร์ชันหลักเดียวกัน ในปี 2012 เพื่อให้สอดคล้องกับจำนวนคุณสมบัติที่ไม่มีใน MySQL ที่เพิ่มขึ้น การกำหนดหมายเลขเวอร์ชันของ MariaDB Server จึงแตกต่างออกไป ในขณะที่ MariaDB เปิดตัวเวอร์ชัน 10.0 ทาง MySQL ก็ได้เปิดตัวเวอร์ชัน 5.6

เซิร์ฟเวอร์ MariaDB ยังคงรักษาความเข้ากันได้กับ MySQL อยู่ในระดับสูง คุณสามารถได้รับการอัปเกรดแบบแทนที่จาก MySQL เวอร์ชันเก่าเป็น MariaDB เวอร์ชันใหม่ล่าสุดได้

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

สรุปความแตกต่างระหว่าง MySQL กับ MariaDB

 

MySQL

MariaDB

JSON

MySQL เก็บรายงาน JSON เป็นอ็อบเจกต์แบบไบนารี

MariaDB เก็บรายงาน JSON เป็นสตริง ประเภทข้อมูล JSON ของ MariaDB เป็นนามแฝงสำหรับ LONGTEXT

ความเข้ากันได้ของฐานข้อมูล Oracle

MySQL มีความเข้ากันได้ในระดับสูง แต่จะไม่รองรับ PL/SQL

MariaDB มีความเข้ากันได้ในระดับสูงและรองรับ PL/SQL ตั้งแต่เวอร์ชัน 10.3 ขึ้นไป

ความเร็วและประสิทธิภาพ

MySQL ช้ากว่า MariaDB เล็กน้อยในการจำลองแบบและการสืบค้น

MariaDB เร็วกว่า MySQL เล็กน้อยในการจำลองแบบและการสืบค้น

การทำงาน

MySQL รองรับฟังก์ชัน Super Read-Only, คอลัมน์แบบไดนามิก และการมาสก์ข้อมูล

MariaDB รองรับคอลัมน์ที่ไม่สามารถมองเห็นและพื้นที่ตารางชั่วคราว

การยืนยันตัวตน

MySQL มีองค์ประกอบ validate_password

MariaDB มีปลั๊กอินตัวตรวจสอบรหัสผ่านสามตัว

การเข้ารหัส

ฐานข้อมูล MySQL จะใช้ InnoDB และ AES เพื่อเข้ารหัสข้อมูลที่อยู่ในพื้นที่จัดเก็บ

MariaDB รองรับการเข้ารหัสข้อมูลบันทึกชั่วคราวและการเข้ารหัสบันทึกแบบไบนารี

เอนจินจัดเก็บข้อมูล

MySQL มีเอนจินจัดเก็บข้อมูลน้อยกว่า MariaDB

MariaDB มีเอนจินจัดเก็บข้อมูลมากกว่า MySQL และสามารถใช้งานได้หลายเอนจินภายในตารางเดียว

ใบอนุญาต

MySQL มีสองเวอร์ชัน ได้แก่ MySQL Enterprise Edition และเวอร์ชัน GPL

MariaDB ทั้งหมดอยู่ภายใต้ GPL

การรวมเธรด

สำหรับ MySQL จะมีการรวมเธรดอยู่ในเวอร์ชัน Enterprise Edition

MariaDB สามารถจัดการการเชื่อมต่อมากกว่า 200,000 รายการพร้อมกัน ซึ่งมากกว่าที่ MySQL ทำได้

AWS รองรับข้อกำหนด MySQL และ MariaDB ของคุณได้อย่างไร

Amazon Relational Database Service (Amazon RDS) คือชุดของบริการที่มีการจัดการเต็มรูปแบบซึ่งง่ายต่อการตั้งค่า ใช้งาน และปรับขนาดฐานข้อมูลในระบบคลาวด์

เลือกจากเอนจินยอดนิยม 7 ตัว โดย 2 ตัวสำหรับ MySQL และ MariaDB โดยเฉพาะ Amazon RDS สำหรับ Maria DB รองรับเซิร์ฟเวอร์ MariaDB เวอร์ชัน 10.3, 10.4, 10.5 และ 10.6 Amazon RDS สำหรับ MySQL รองรับ MySQL Community Edition เวอร์ชัน 5.7 และ 8.0 

Cloud Watch Logs

คุณจะได้รับประโยชน์จากการใช้งาน Amazon RDS ในวิธีดังต่อไปนี้

  • Cloud Watch Logs ปรับใช้ฐานข้อมูลบนคลาวด์ MariaDB และ MySQL ที่สามารถปรับขนาดได้ในไม่กี่นาทีด้วยความจุของฮาร์ดแวร์ที่คุ้มค่าและสามารถปรับขนาดได้
  • ใช้โค้ด แอปพลิเคชัน และเครื่องมือที่มีอยู่โดยไม่มีการเปลี่ยนแปลง
  • เข้าถึงตัวชี้วัด CPU หน่วยความจำ ระบบไฟล์ และดิสก์ I/O มากกว่า 50 รายการสำหรับการตรวจสอบฐานข้อมูลขั้นสูง
  • เพลิดเพลินไปกับความพร้อมใช้งานและความทนทานที่ได้รับการปรับปรุงเพื่อเพิ่มจำนวนอินสแตนซ์ให้เกินข้อจำกัดด้านความจุของอินสแตนซ์ฐานข้อมูลรายการเดียว

เริ่มต้นใช้งาน MySQL และ MariaDB บน AWS โดยสร้างบัญชีได้แล้ววันนี้

ขั้นตอนถัดไปกับ AWS