MySQL และ MariaDB ต่างก็เริ่มจากนักพัฒนาชุดเดียวกัน ก่อนจะแยกทางการกันเพราะ oracle จะซื้อ MySQL ไป ทำให้นักพัฒนาหลายคนแยกออกมาทำ MariaDB
โครงสร้างเมนู (Hierarchy)
- MySQL: มักจะเน้นไปที่การแสดง Databases (Schemas) เป็นหลัก ส่วนการจัดการ User หรือระบบมักจะถูกซ่อนไว้ในเมนู Admin หรือต้องเข้าไปดูใน Database ชื่อ
mysqlโดยตรง - MariaDB: โปรแกรมจะแยกหมวดหมู่ชัดเจนกว่า โดยมีโฟลเดอร์ Users, Administer, และ System Info แยกออกมาให้เห็นในระดับบนสุด ทำให้จัดการเรื่องสิทธิ์ (Grants) หรือดูสถานะเซิร์ฟเวอร์ได้ง่ายขึ้น
ความแตกต่างเชิงเทคนิค (Object & Storage)
แม้ว่าคำสั่ง SQL ส่วนใหญ่จะใช้ร่วมกันได้ แต่ “ไส้ใน” ของ Object ต่างกันดังนี้ครับ:
| หัวข้อ | MySQL (8.0+) | MariaDB (Latest) |
| Data Dictionary | เก็บ Metadata ไว้ในไฟล์ .ibd (Transaction-safe) | เก็บ Metadata ไว้ในไฟล์ .frm (แบบดั้งเดิม) |
| Default Storage Engine | InnoDB (เน้นความถูกต้องของข้อมูลสูง) | Aria หรือ InnoDB (เน้นความเร็วและการทำ Data Warehousing) |
| System Info | เน้นตาราง performance_schema และ sys | เน้นตาราง information_schema และมีตัววัดผลที่อ่านง่ายกว่า |
| User Privileges | ใช้ Role ได้ซับซ้อนกว่าในเวอร์ชัน 8.0 | มีระบบ Role ที่ใช้ง่ายและยืดหยุ่นมานานแล้ว |
การแสดงผลใน image
- ใน docker-mysql: คุณเห็น Database และ
tableทันที เพราะโปรแกรมมองว่าเป็น Schema หลัก - ใน docker-mariadb: คุณเห็นโฟลเดอร์ Users โผล่มาให้กดได้เลย ซึ่งสะดวกมากถ้าคุณต้องการ “คลิกขวา” เพื่อเพิ่ม User หรือแก้ Grant แทนการพิมพ์คำสั่ง SQL ครับ
อ่านเพิ่มเติม
