Hệ quản trị cơ sở dữ liệu

MySQL

Cơ sở dữ liệu quan hệ mã nguồn mở, dễ bắt đầu và đủ sức chạy hệ thống lớn

MySQL là cơ sở dữ liệu quan hệ mã nguồn mở phổ biến nhất, miễn phí theo giấy phép GPL và đủ sức chạy hệ thống lớn, nhưng mặc định vẫn là công cụ dòng lệnh.

8.8
ĐIỂM TOPỨNGDỤNG
Hạng #8 trong nhóm Developer & lập trình
Nhà phát triển
Oracle
Nền tảng
Windows · macOS · Linux
Giá
Mã nguồn mở, dùng miễn phí · Bản Enterprise có bản miễn phí cho học tập và phát triển thử
Ngôn ngữ
English
NGƯỜI DÙNG CHẤM

Bạn đánh giá MySQL thế nào?

Điểm này độc lập với điểm của ban biên tập và quyết định thứ hạng ở tab “Người dùng bình chọn”.

Chưa có bình chọn
Bạn thấy sao?
Không cần đăng nhập. Mỗi người một phiếu, đổi lại được.
CHẤM ĐIỂM

Điểm từng tiêu chí

Điểm tổng là trung bình có trọng số của các tiêu chí bên dưới.

Dễ cài đặt
8
Tính năng
8.5
Hiệu năng
8.5
Giá trị so với chi phí
9.5
Hỗ trợ & cộng đồng
9.5
REVIEW

Đánh giá chi tiết MySQL

Trả lời ngắn: MySQL là hệ quản trị cơ sở dữ liệu quan hệ mã nguồn mở do Oracle phát triển, dùng để lưu trữ và truy vấn dữ liệu cho website, ứng dụng và hệ thống nội bộ.

Nên dùng nếu: bạn cần một cơ sở dữ liệu quan hệ miễn phí, chạy được trên Linux, Windows và macOS, có cộng đồng đông để hỏi khi kẹt. Không đủ nếu: bạn muốn sẵn giao diện quản trị đồ hoạ, cần tài liệu tiếng Việt, hoặc định nhúng mã nguồn vào sản phẩm đóng gói mà không quan tâm tới giấy phép thương mại.

MySQL giải quyết vấn đề gì?

Phần lớn ứng dụng đều phải nhớ một thứ gì đó: danh sách người dùng, đơn hàng, lịch sử giao dịch, nội dung bài viết. Nhét hết vào tệp văn bản thì vài tháng là rối, sửa một dòng cũng phải mở cả tệp ra. MySQL giải đúng bài toán đó bằng cách chia dữ liệu thành bảng, mỗi bảng có cột và kiểu dữ liệu rõ ràng, các bảng nối với nhau qua khoá.

Điểm khiến MySQL được chọn nhiều không nằm ở tính năng hào nhoáng, mà ở chỗ nó làm tốt phần khó nhất: giao dịch ACID. Hiểu đơn giản, một nhóm thay đổi hoặc thành công trọn vẹn, hoặc không thay đổi gì, kể cả khi máy chủ gặp sự cố giữa chừng. Trang giới thiệu của Oracle cũng nêu MySQL chịu được số lượng kết nối đồng thời lớn và có sẵn kiến trúc replication để nhân bản dữ liệu sang máy khác.

Với người mới, giá trị thật nằm ở chỗ đây là điểm khởi đầu rẻ và phổ biến. Cài vài phút là đã có một máy chủ dữ liệu chạy được, tài liệu và câu trả lời trên các diễn đàn nhiều vô kể.

MySQL làm tốt việc gì?

Loại việcMức độGhi chú
Lưu dữ liệu quan hệ cho web và appTốt nhấtBảng, khoá ngoại, chỉ mục đầy đủ; Oracle nêu MySQL nằm trong các hệ thống lớn như Facebook, Netflix, Uber.
Giao dịch ACIDTốt nhấtThay đổi dữ liệu được xử lý nhất quán ngay cả khi hệ thống gặp sự cố.
Nhân bản và dự phòngRất tốtCó replication gốc, hỗ trợ failover tự động ở mức cao.
Lưu dữ liệu JSON và vectorTốtTrang chủ nêu MySQL hỗ trợ kiểu JSON, vector và Document Store cho ứng dụng kiểu NoSQL.
Cài và chạy thử trên máy cá nhânTốtCó bản cho Linux, macOS, Windows, cài trong vài phút.
Phân tích dữ liệu lớn ngay trên máy chủ giao dịchKémMuốn tăng tốc kiểu này phải chuyển sang dịch vụ HeatWave trên đám mây.
Giao diện quản trị đồ hoạ đi kèmKhôngBản gốc thiên về dòng lệnh, muốn giao diện phải dùng công cụ ngoài.
Tài liệu tiếng Việt chính thốngKhôngTrang Oracle và tài liệu kỹ thuật mặc định tiếng Anh.

Ai nên dùng MySQL?

Lập trình viên web và ứng dụng. Đây là nhóm hợp nhất. Dựng một website có đăng nhập, giỏ hàng, phân quyền, MySQL lo hết phần dữ liệu mà không đòi hỏi kiến thức vận hành nặng. Hệ sinh thái thư viện kết nối cho Java, Python, PHP hay JavaScript đều có sẵn.

Nhóm nhỏ tự dựng hệ thống. Một VPS vài trăm nghìn một tháng cũng đủ chạy MySQL cho vài nghìn người dùng. Nhóm không cần thuê dịch vụ đám mây đắt tiền ngay từ đầu, cứ để dữ liệu trên máy chủ của mình rồi tính sau.

Sinh viên và người học cơ sở dữ liệu. Học SQL trên MySQL là cách nhanh nhất để hiểu bảng, khoá, chỉ mục, giao dịch. Cài trên máy cá nhân, phá thoải mái, xoá đi cài lại cũng chẳng tốn gì.

Doanh nghiệp cần hỗ trợ chính thức. Nếu hệ thống là thứ không được phép sập, bản Enterprise Edition có thêm backup, router, shell, connectors và các tính năng bảo mật nâng cao. Nhóm này nên tính chuyện mua hỗ trợ thay vì tự bơi.

Cách dựng MySQL cho gọn gàng

1. Cài đúng gói cho hệ điều hành đang chạy

Trang tải của Oracle chia gói theo hệ điều hành và kiến trúc, từ Oracle Linux, Red Hat Enterprise Linux, macOS tới Windows 11 và Windows Server. Chọn sai kiến trúc thì cài xong cũng không chạy, nên đọc kỹ trước khi tải. Với máy cá nhân, bản cài sẵn cho Windows hoặc macOS là lựa chọn ít phiền nhất.

2. Tách tài khoản ứng dụng khỏi tài khoản quản trị

Đừng để ứng dụng kết nối bằng tài khoản quản trị. Tạo một tài khoản riêng chỉ có quyền trên đúng cơ sở dữ liệu cần dùng, giới hạn cả máy được phép kết nối. Cách này khiến một lỗi lập trình hay một lần rò rỉ thông tin đăng nhập cũng khó kéo sập toàn bộ máy chủ.

3. Bật sao lưu trước khi cần đến nó

Dữ liệu là thứ duy nhất trong dự án không thể cài lại từ mã nguồn. Hãy đặt lịch sao lưu tự động và thử phục hồi một lần ngay khi hệ thống còn nhỏ. Bản Enterprise Edition có sẵn công cụ backup, còn bản cộng đồng thì dùng các lệnh xuất dữ liệu kèm script.

4. Đo truy vấn chậm thay vì đoán

Khi trang bắt đầu ì, phần lớn nguyên nhân nằm ở vài truy vấn thiếu chỉ mục chứ không phải máy yếu. Bật nhật ký truy vấn chậm, xem kế hoạch thực thi của câu lệnh đáng ngờ, rồi thêm chỉ mục đúng chỗ. Cách này rẻ hơn nhiều so với nâng cấu hình máy chủ.

Hạn chế cần biết

Mặc định vẫn là dòng lệnh

MySQL không kèm một giao diện đồ hoạ tử tế cho người mới. Muốn nhìn bảng, sửa dữ liệu bằng chuột thì phải cài thêm công cụ bên ngoài. Đây là điểm nhiều người bỏ qua khi so sánh với các hệ quản trị có sẵn giao diện đẹp.

Bảo mật nâng cao nằm ở bản trả phí

Mã hoá trong suốt, kiểm toán, che dữ liệu và tường lửa cơ sở dữ liệu là những thứ Oracle xếp vào bản Enterprise Edition. Bản miễn phí vẫn an toàn ở mức cơ bản, nhưng đừng kỳ vọng có đủ bộ công cụ phục vụ yêu cầu tuân thủ.

Giấy phép GPL không miễn phí cho mọi cách dùng

Trang Oracle nói rõ ai cũng tải MySQL về dùng không mất phí, nhưng nếu nhúng mã nguồn vào một sản phẩm đóng gói thì doanh nghiệp nên mua giấy phép thương mại. Đây là chi tiết dễ bị bỏ qua cho tới lúc pháp chế hỏi.

Lỗi hay gặp khi mới dùng MySQL

Kết nối bị từ chối dù mật khẩu đúng

Lỗi này thường không phải do sai mật khẩu mà do tài khoản chưa được phép kết nối từ máy đang dùng. Kiểm lại phần khai báo máy được phép truy cập và cổng dịch vụ trước khi đổi mật khẩu liên tục.

Tiếng Việt hiển thị thành ký tự lạ

Nguyên nhân nằm ở bộ ký tự của cơ sở dữ liệu, bảng hoặc kết nối, chứ không phải ở dữ liệu đã nhập. Đặt bộ ký tự ngay từ lúc tạo cơ sở dữ liệu sẽ tránh được cảnh phải sửa lại toàn bộ bảng về sau.

Cài xong nhưng dịch vụ không tự chạy

Trên máy chủ, MySQL thường được đặt chạy nền theo dịch vụ của hệ điều hành. Sau khi khởi động lại máy mà ứng dụng mất kết nối, hãy kiểm tra dịch vụ trước khi nghi ngờ mạng hay mã nguồn.

MySQL so với các hệ quản trị cùng nhóm

Tiêu chíMySQLPostgreSQLMicrosoft SQL Server 2022
Nguồn gốc và giấy phépOracle phát triển, mã nguồn mở theo GPL, có bản thương mạiDự án mã nguồn mở, không thuộc một hãng thương mại lớnSản phẩm thương mại của Microsoft
Nền tảng chạyLinux, macOS, WindowsLinux, macOS, WindowsChủ yếu Windows, có bản cho Linux
Thế mạnh thường được nhắcPhổ biến, dễ học, nhiều thư viện kết nốiKiểu dữ liệu phong phú, truy vấn phức tạpGắn chặt hệ sinh thái Microsoft và công cụ quản trị đồ hoạ
Công cụ quản trị đồ hoạ đi kèmKhông, phải dùng công cụ ngoài như DBeaverKhông, phải dùng công cụ ngoàiCó, đi kèm bộ công cụ của Microsoft
Phù hợp nhất vớiWeb, app, hệ thống cần triển khai nhanh và rẻHệ thống cần truy vấn và ràng buộc dữ liệu phức tạpDoanh nghiệp đã dùng sẵn nền tảng Microsoft

Điểm đáng cân nhắc: nếu hệ thống chạy trong container, MySQL có lợi thế vì image nhẹ và tài liệu triển khai dày, xem thêm Docker để hiểu cách đóng gói. Còn với dữ liệu phi cấu trúc kiểu tài liệu, MongoDB Compass là hướng khác hẳn, không nên đem so ngang.

Kết luận

MySQL là lựa chọn mặc định của rất nhiều dự án vì nó cân bằng tốt giữa chi phí, độ ổn định và số người biết dùng. Nếu bạn cần một cơ sở dữ liệu quan hệ để bắt đầu ngay hôm nay, đây là cái tên khó sai. Điểm trừ thật sự không nằm ở hiệu năng mà ở trải nghiệm mặc định khá khô khan và phần giấy phép cần đọc kỹ khi dùng cho sản phẩm thương mại.

Trước khi triển khai, hãy mở lại trang chủ MySQL và trang tài liệu của Oracle để đối chiếu phiên bản, gói cài và điều khoản giấy phép hiện hành, vì những thứ này thay đổi theo từng bản phát hành.

ĐÁNH GIÁ

Điểm mạnh & điểm yếu

Điểm mạnh

  • Mã nguồn mở theo giấy phép GPL, tải về dùng không mất phí
  • Giao dịch ACID và khả năng chịu nhiều kết nối đồng thời
  • Cài nhanh, có gói cho Linux, macOS và Windows
  • Cộng đồng và tài liệu kỹ thuật dày, dễ tìm cách xử lý lỗi
  • Hỗ trợ cả dữ liệu JSON và vector bên cạnh bảng quan hệ

Điểm yếu

  • Không kèm giao diện quản trị đồ hoạ, phải dùng công cụ ngoài
  • Tài liệu chính thống hầu hết bằng tiếng Anh
  • Nhiều tính năng bảo mật nâng cao chỉ có ở bản trả phí
  • Nhúng vào sản phẩm đóng gói cần cân nhắc giấy phép thương mại
Phù hợp nhất với
Lập trình viên làm web và ứng dụng cần cơ sở dữ liệu quan hệNhóm nhỏ tự dựng hệ thống trên VPS hoặc máy chủ riêngSinh viên học SQL và thiết kế cơ sở dữ liệuDoanh nghiệp cần bản có hỗ trợ và công cụ bảo mật chính thức
HỎI ĐÁP

Câu hỏi thường gặp

MySQL có miễn phí không?

Trang giới thiệu của Oracle nêu MySQL là cơ sở dữ liệu mã nguồn mở dùng giấy phép GPL, ai cũng có thể tải và dùng không mất phí. Tuy nhiên nếu doanh nghiệp nhúng mã nguồn vào sản phẩm đóng gói, Oracle khuyến nghị mua giấy phép thương mại. Bản Enterprise Edition cũng có bản dùng miễn phí cho mục đích học tập và phát triển thử.

MySQL khác gì so với SQL?

SQL là ngôn ngữ truy vấn dùng để thêm, sửa, xoá và đọc dữ liệu trong cơ sở dữ liệu quan hệ. MySQL là phần mềm quản trị dữ liệu dùng chính ngôn ngữ đó, nên tên gọi có chứa chữ SQL. Học SQL một lần là dùng được cho nhiều hệ quản trị khác nhau.

MySQL chạy trên những hệ điều hành nào?

Trang tải của Oracle chia gói cho Oracle Linux, Red Hat Enterprise Linux, macOS và Windows, gồm cả Windows Server. Mỗi hệ điều hành lại có bản theo kiến trúc x86_64 hoặc arm64. Bạn nên chọn đúng gói ngay từ đầu để tránh cài xong không chạy.

MySQL có dùng được cho hệ thống lớn không?

Được. Trang Oracle dẫn ra các hệ thống như Facebook, Netflix, Uber, Airbnb, Shopify và Booking.com đang dùng MySQL. Yếu tố giúp mở rộng là kiến trúc replication gốc, cho phép nhân bản dữ liệu sang nhiều máy. Tất nhiên hệ thống lớn còn cần thiết kế và vận hành đúng, không chỉ mỗi cơ sở dữ liệu.

Bản Enterprise khác bản cộng đồng ở điểm nào?

Bản Enterprise Edition đi kèm MySQL Enterprise Server, Backup, Router, Shell và Connectors theo trang tải của Oracle. Bản này cũng có các tính năng bảo mật nâng cao như xác thực, mã hoá trong suốt, kiểm toán, che dữ liệu và tường lửa cơ sở dữ liệu. Bản cộng đồng đủ dùng cho phần lớn dự án nhưng thiếu những công cụ phục vụ yêu cầu tuân thủ.

MySQL có hỗ trợ dữ liệu JSON không?

Có. Trang Oracle nêu MySQL bổ sung kiểu dữ liệu JSON và vector bên cạnh các kiểu truyền thống. MySQL Document Store còn cho phép xây ứng dụng kiểu NoSQL không cần lược đồ. Nhờ vậy bạn có thể trộn dữ liệu quan hệ và tài liệu JSON trong cùng một cơ sở dữ liệu.

Không biết lập trình có dùng được MySQL không?

Vẫn học được, vì thao tác cơ bản chỉ là gõ câu lệnh truy vấn và xem kết quả. Nhưng để đưa vào một hệ thống thật thì cần biết thêm cách kết nối từ mã nguồn và cách sao lưu. Dân văn phòng, kế toán hay phân tích dữ liệu thường dùng công cụ có sẵn giao diện thay vì tự cài.

Nên chọn MySQL hay PostgreSQL?

Nếu cần triển khai nhanh, nhiều người đã biết và tài liệu dễ tìm, MySQL là lựa chọn an toàn. Nếu bài toán cần kiểu dữ liệu phong phú và truy vấn phức tạp, PostgreSQL thường được nhắc tới nhiều hơn. Cách chắc chắn nhất là thử một tính năng khó nhất của dự án trên cả hai rồi quyết.

MySQL HeatWave là gì?

Đây là dịch vụ cơ sở dữ liệu đám mây của Oracle, chạy được trên Oracle Cloud Infrastructure, AWS và Microsoft Azure. HeatWave là bộ tăng tốc truy vấn trong bộ nhớ, giúp phân tích dữ liệu ngay trên hệ thống giao dịch mà không phải sao chép dữ liệu sang nơi khác. Dịch vụ này còn có AutoML và các tính năng AI tạo sinh tích hợp.

Muốn học MySQL thì bắt đầu từ đâu?

Cài một bản MySQL trên máy cá nhân, tạo một cơ sở dữ liệu nhỏ rồi luyện các câu lệnh thêm, sửa, xoá, truy vấn. Sau đó học tới chỉ mục và giao dịch vì đây là hai phần quyết định tốc độ và độ an toàn của hệ thống thật. Oracle cũng có các khoá đào tạo chính thức nếu bạn muốn học bài bản.

KẾT LUẬN

MySQL đáng dùng cho gần như mọi dự án cần cơ sở dữ liệu quan hệ, nhất là khi ngân sách eo hẹp và đội ngũ đã quen SQL. Người cần giao diện quản trị sẵn hoặc muốn truy vấn dữ liệu phức tạp nên xem thêm các hệ quản trị khác trước khi chốt.