MariaDB Storage Engines
ความสามารถที่โดดเด่นของ MariaDB — ใช้ Storage Engine ที่แตกต่างกันตามลักษณะของข้อมูลและ workload ในฐานข้อมูลเดียว
🗄️ Storage Engine คืออะไร?
Storage Engine คือ component ที่รับผิดชอบการ read/write ข้อมูลจริงบน disk — MariaDB อนุญาตให้แต่ละ table ใช้ engine ที่แตกต่างกัน สร้าง hybrid architecture ที่ยืดหยุ่นสูง
Engine หลักของ MariaDB สำหรับ OLTP workloads — รองรับ Transactions, Foreign Keys, Row-level locking และ MVCC (Multi-Version Concurrency Control) MariaDB ใช้ XtraDB ซึ่งเป็น enhanced fork ของ InnoDB ที่มี performance ดีกว่า
Aria เป็น engine ที่ MariaDB พัฒนาขึ้นเองเพื่อแทน MyISAM — เพิ่ม crash-safety ผ่าน write-ahead logging ใช้เป็น internal engine สำหรับ system tables และ temporary tables ใน MariaDB
ColumnStore เก็บข้อมูลเป็น columns แทน rows — เหมาะกับ analytical queries ที่อ่านข้อมูลจำนวนมาก รองรับ distributed processing และ petabyte-scale datasets สำหรับ data warehouse
MyRocks ใช้ RocksDB ของ Facebook เป็น storage layer — เหมาะสำหรับ write-heavy workloads บน SSD ใช้ space น้อยกว่า InnoDB 2x ผ่าน LSM-tree structure Facebook ใช้ engine นี้ใน production
Spider engine สร้าง transparent sharding โดยกระจาย data ข้าม MariaDB servers หลายตัว — เสมือนเป็น table เดียวสำหรับ application แต่จริงๆ data อยู่หลาย nodes
เลือก Engine ที่ใช่
| Engine | Use Case | Transactions | FK Support | Full-Text |
|---|---|---|---|---|
| InnoDB | OLTP, General Purpose | ✅ Yes | ✅ Yes | ✅ Yes |
| Aria | Read-heavy, Temp tables | ❌ No | ❌ No | ✅ Yes |
| ColumnStore | Analytics, Data Warehouse | ⚠️ Limited | ❌ No | ❌ No |
| MyRocks | Write-heavy, IoT, Logs | ✅ Yes | ❌ No | ❌ No |
| Spider | Sharding, Distributed | ⚠️ Partial | ❌ No | ❌ No |
| MEMORY | Cache, Temp data | ❌ No | ❌ No | ❌ No |
| CSV | Import/Export, Logging | ❌ No | ❌ No | ❌ No |