Mysql

Cơ sở dữ liệu MySQL và các biến thể Percona, MariaDB

Cơ sở dữ liệu MySQL và các biến thể Percona, MariaDB

Giới thiệu

Ngày nay ứng dụng web có rất nhiều lựa chọn cơ sở dữ liệu (database), đối với các nên tảng mã nguồn mở nhất là PHP, MySQL là sự lựa chọn vô cùng phổ biến trong một thời gian dài. Tuy nhiên công nghệ ngày càng phát triển, với sự xuất hiện của MariaDB và Percona, là 2 nhánh biến thể của MySQL với nhiều tính năng vượt trội. Bài viết này sẽ giới thiệu và so sánh ba công nghệ trên.

MySQL

MySQL
Lịch sử phát triển

Phiên bản đầu tiên của MySQL phát hành năm 1995

Công ty Sun Microsystems mua lại MySQL AB trong năm 2008

Năm 2010 tập đoàn Oracle thâu tóm Sun Microsystems. Ngay lúc đó, đội ngũ phát triển của MySQL tách MySQL ra thành 1 nhánh riêng gọi là MariaDB. Oracle tiếp tục phát triển MySQL lên phiên bản 5.5.

2013 MySQL phát hành phiên bản 5.6

2015 MySQL phát hành phiên bản 5.7

MySQL đang được phát triển lên phiên bản 8.0

MySQL hiện nay có 2 phiên bản miễn phí (MySQL Community Server) và có phí (Enterprise Server).

MariaDB


Lịch sử phát triển

Như phần trên đã đề cập. Năm 2010 khi Oracle mua lại MySQL và phát triển MySQL theo hướng thương mại hóa, như 1 sự chống đối lại Oracle, đội ngũ phát triển của MySQL đã tách ra phát triển MariaDB, có thể nói đây là phiên bản tiếp nối của MySQL theo hướng mã nguồn mở.


MariaDB hướng tới sự mở rộng các tính năng mới cho MySQL, đồng thời tối ưu hóa các câu truy vấn.

Tôn chỉ của MariaDB: sản phẩm do developers gốc của MySQL, phát triển phục vụ cộng đồng.

Một số tính năng chính:

  • MariaDB có nhiều kỹ thuật lưu trữ (storage engines - ta hay dùng MyISAM, InnoDB với MySQL) hơn MySQL gốc và Percona, bao gồm NoSQL, XtraDB (thay thế cho InnoDB), Aria (cập nhật của MyISAM)
  • Phiên bản 10.1 cho phép mã hóa database trên đĩa cứng máy tính
  • Tính năng mở rộng (scalability features) với đa nguồn, 1 server có thể được nhân rộng từ nhiều nguồn khác nhau
  • Tương tác giữa MySQL qua MariaDB rất dễ dàng, có thể sao chép dữ liệu từ MySQL 5.6 sang MariaDB 10.X, nhưng không theo chiều ngược lại.
  • Cộng đồng rất mạnh, thậm chí nguồn tài liệu có cả tiếng Việt https://mariadb.com/kb/vi/ (chưa có Tiếq Việt cải tiến nhé)

Percona

Percona là 1 công ty có các sản phẩm mã nguồn mở, trong đó có Percona Server for MySQL, Percona Server for MongoDB. Các sản phẩm này nhằm mục đích tối ưu hóa lại các CSDL nền tảng, bên cạnh đó, sản phẩm Percona Monitoring and Management chuyên dành để phân tích và quản lý CSDL

Các sản phẩm của Percona hoàn toàn miễn phí, do đó doanh thu tới từ việc hỗ trợ, tư vấn và quản lý.

Percona Server for MySQL tập trung vào việc tăng hiệu suất cho MySQL, và đặc biệt tối ưu cấu trúc lưu trữ InnoDB (InnoDB storage engine) - với tên gọi XtraDB. Percona bám sát sự phát triển của các phiên bản MySQL, so với MariaDB thì Percona chỉ tối ưu hóa MySQL chứ không phát triển thêm các chức năng.


Một số tính năng chính:

  • Cung cấp nhiều công cụ để đo và phân tích hiệu năng của cơ sở dữ liệu.
  • Cải tiến khả năng mở rộng cho các cơ sở dữ liệu lớn, một số tính năng chỉ có trong phiên bản thu phí Enterprise của MySQL.
  • Có thêm các storage engine khác, bao gồm XtraDB Cluster và XtraBackup.
  • Hợp tác với AWS (Amazon Web Services)

So sánh

Thật khó để đặt lên bàn cân Oracle MySQL, MariaDB và Percona. Bởi lẽ mỗi một công nghệ hướng tới 1 mục tiêu khác nhau. Nếu MySQL có sự hậu thuẫn từ ông lớn Oracle để phát triển thì MariaDB dựa vào cộng đồng mã nguồn mở, nếu Percona hướng tới hiệu năng thì MariaDB hướng tới tính năng. Tùy yêu cầu ứng dụng mà ta sẽ chọn lựa Cơ Sở Dữ Liệu (CSDL) cho phù hợp.
Mục này ta sẽ so sánh các con số thực tế như: độ phổ biến người dùng, xu hướng sử dụng,

DB-Engines Ranking

Bảng xếp hạng DB-Engines dựa trên độ phổ biến và được cập nhật hằng tháng:
https://db-engines.com/en/ranking
MySQL vị trí 2
MariaDB vị trí 17
Percona vị trí 92

Trend

Biểu đồ xu hướng sử dụng

The choice is yours

Đã đến lúc thay đổi một thứ đã quá quen thuộc, và học hỏi 1 thứ mới:
Các lý do để thử MariaDB:

1. Vì có họ hàng với Maria Ozawa
  1. Muốn phát huy hết tiềm năng của cộng đồng mã nguồn mở, không muốn phụ thuộc vào 1 công ty bá chủ nào cả (Oracle). Giống dân Linux chê Microsoft vậy.
  2. Luôn luôn theo sát chặng đường phát triển của công nghệ. Nay post bug, ngày mai có thể sẽ có 1 merge request fix cho bạn.
  3. Cộng đồng luôn đòi hỏi các cập nhật liên tục về bảo mật, và bạn sẽ được hưởng ké. Ai xài Linux cũng biết mỗi ngày là 1 bản update về security.
  4. Trải nghiệm nhiều cấu trúc lưu trữ mới lạ (Connect và Cassandra cho NoSQL backends, Spider với built-in sharding hay TokuDB của Percona... MariaDB có rất nhiều storage engines)

Các lý do để thử Percona

  1. Muốn truy vấn với tốc độ nhanh nhất. Storage engine XtraDB của Percona ăn đứt InnoDB của MySQL về mặt tốc độ.
  2. Tính nhất quán khi chạy nhiều máy chủ khác nhau.
  3. Bộ đọc ghi (I/O) mạnh để làm việc với dữ liệu đồ sộ mà không cần tới kỹ thuật chia nhỏ data (sharding).
  4. Giảm thời gian bảo trì. Do tích hợp nhiều tính năng sao lưu online và import/export tốt.
  5. Nhiều công cụ để theo dõi, quản lý hiệu năng. Khó lọt được câu truy vấn bựa trong ứng dụng của bạn.

Kết luận

Khi ứng dụng của bạn đã triển khai một thời gian, nay muốn nâng cấp hiệu năng, tốc độ và quy mô thì chuyển từ MySQL sang Percona là 1 bước đi sáng suốt, vì phiên bản của Percona rất gần với phiên bản của MySQL hiện tại.
Đối với 1 ứng dụng mới, bạn muốn áp dụng nhiều công nghệ mới, nhận được sự hỗ trợ mạnh mẽ từ cộng đồng, thì MariaDB là sự lựa chọn tuyệt vời.

* Nhưng theo research thì Percona cũng rất tuyệt đấy chứ, tại sao trong biểu đồ cũng như xếp hạng lại dưới đáy thế nhỉ? Có ai biết không?

Bài viết copy từ nguồn namluu's blog

Registration Login
Sign in with social account
or
Lost your Password?
Registration Login
Sign in with social account
or
A password will be send on your post
Registration Login
Registration