Sử dụng Mariadb thay cho Mysql, tại sao?
Nội dung chính
Mã nguồn mở (miễn phí) thực sự!
Sử dụng MariaDB hay Mysql đều có 2 phiên bản thương mại và cộng đồng, tuy nhiên với Mysql bản thương mại (Entrerprise) và bản cộng đồng (miễn phí) có ngay từ những ngày đầu tiên của dòng sản phẩm này. Đó cũng chính là lý do mà Mysql được mua lại một cách dễ dàng từ năm 2009 bởi Oracle sau khi Sun sụp đổ năm 2008. Hiện tại Mysql được bảo trì và phát triển bằng đội ngũ của Oracle và không chịu nhiều tác động bởi cộng đồng, kể từ phiên bản 5.7, các lịch sử commit cho thấy Mysql được phát triển bởi các thành viên đến từ @oracle, hơn nữa các vấn đề (lỗi, cải thiện hiệu suất,…) đều không đem ra thảo luận giữa cộng đồng một cách rõ ràng, một số module là mã nguồn đóng.
Trái ngược với Mysql, MariaDB hoàn toàn mã nguồn mở được vận hành bởi cộng đồng thực sự (MariaDB Foundation), đứng đằng sau là công ty Monty Program, mặc dù cũng có bản thương mại nhưng không ảnh hưởng đến phiên bản mã nguồn mở.
Nói một cách khác, cộng đồng không có quyền trên Mysql!!!
Được bảo trì bởi người tạo ra Mysql
Sau khi bị Oracle mua lại, một số thành viên chủ lực của Mysql đã ra đi (vì bất cứ lý do gì…) trong đó bao gồm những người tạo ra Mysql. Họ đã fork Mysql thành MariaDB và tiếp tục phát triển, đến bây giờ đã là thế hệ 10.x rồi.
Hoàn toàn tương thích với Mysql
MariaDB có hệ thống hoàn toàn tương thích như với Mysql từ phiên bản 5.1 -> 5.5. Nên nếu website của bạn đang dùng Mysql 5.1 -> 5.5 thì việc chuyển qua MariaDB là ngon lành 100%.
Nhiều tính năng hay
Kể từ Mysql 5.6, MariaDB đã không còn giống Mysql nữa, họ đã tách hẳn và nâng cấp nhiều tính năng để cải thiện tốc độ cũng như các tính năng mới: (GIS)[https://mariadb.com/kb/en/mariadb/gis-functionality/] giúp lưu trữ dữ liệu định vị và truy vấn một cách dễ dàng hơn. Và đặc biệt nếu bạn từng nghe đến NoSQL thì MariaDB cũng có hỗ trợ với việc không giới hạn cột, cũng như loại dữ liệu:
Ví dụ:
create table assets ( item_name varchar(32) primary key, -- A common attribute for all items dynamic_cols blob -- Dynamic columns will be stored here ); INSERT INTO assets VALUES ('MariaDB T-shirt', COLUMN_CREATE('color', 'blue', 'size', 'XL')); INSERT INTO assets VALUES ('Thinkpad Laptop', COLUMN_CREATE('color', 'black', 'price', 500));
Như vậy, bạn thấy record đầu thì size là XL, record sau không có, nhưng lại có price là 500. Đây là đặc tính rất hay để kết hợp SQL và NoSQL.
Các bạn xem thêm dách sách chức năng mới khi sử dụng MariaDB.
Nhiều engine lưu trữ hơn
Thật ra, chúng ta thường ít quan tâm đến chuyện này, chỉ cần MyISAM hoặc InnoDB thôi có lẽ cũng đủ. Tuy nhiên nếu bạn biết thêm nhiều engine nữa có nghĩa là sử dụng đúng trong từng tình huống, sẽ giúp hệ thống linh động hơn, cũng như chạy nhanh hơn. Khi sử dụng MariaDB, chúng ta có thêm nhiều sự lưa chọn cho store engine nhờ đó dễ dàng phát triển sản phẩm lớn.
Ví dụ: Cassandra Store Engine: Cassandra là cơ sở dữ liệu được sử dụng bởi Facebook, theo cơ chế row với 1 key và không giới hạn column. Nếu bạn đã có một cơ sở dữ liệu và muốn kết nối với MariaDB thì hoàn toàn có khả năng: lấy dữ liệu từ Cassandra bằng ngôn ngữ SQL hoặc như thêm mới dữ liệu vào Cassandra.
Kết hợp 2 thế giới SQL và NoSQL
Cả 2 loại cơ sở dữ liệu này đều có điểm lợi riêng, việc MariaDB cho phép kết nối sẽ tận dụng được lợi thế của 2 thế giới này: dynamic column và cassandra store engine.
Sử dụng Mariadb để tối ưu tốc độ
Mặc dù vẫn có một vài thí nghiệm benchmark chỉ ra rằng MariaDB nhanh hơn Mysql từ 3-5%, tuy nhiên để khẳng định là tốc độ nhanh hơn thì rất khó để nói. Mặc dù vậy, với sự phát triển của cộng đồng do cộng đồng thì mình tin tưởng rằng MariaDB sẽ được tối ưu ngày càng tốt hơn.
Các website lớn đã sử dụng MariaDB
Một trong những website lớn nhất thế giới là Wikipedia đã chuyển từ Mysql qua MariaDB. Ngay cả Fullstack Station cũng đang dùng MariaDB 🙂
Tài liệu hỗ trợ tiếng Việt
(Knowledge Base tiếng Việt)[https://mariadb.com/kb/vi/], mặc dù bản dịch vẫn chưa phải quá tốt, tuy nhiên cho thấy sự tiếp cận cộng đồng là khá tốt. Việc đọc tài liệu bằng tiếng mẹ đẻ rõ ràng dễ hiểu hơn chứ!
Kết luận:
Nếu bạn không chuyển qua MariaDB thì sao nhỉ? Thật ra thì mình nghĩ cũng chẳng sao, tuy nhiên như bạn thấy thì từ bản 5.7 thì 2 hệ cơ sở dữ liệu này đã bắt đầu khác nhau nhiều rồi, đến 1 lúc nào đó Mysql không còn nhận sự quan tâm của cộng đồng mã nguồn mở nữa, thì sự hỗ trợ cũng sẽ dần giảm sút (đã thấy từ 5.7 khi số người đóng góp đã giảm). Các cộng đồng mã nguồn sử dụng Mysql dần cũng sẽ chuyển sang sử dụng MariaDB, tới lúc đó bạn sẽ mất nhiều thời gian hơn để chuyển nhà!