Facebook Pixel

MySQL là gì? Hướng dẫn Cài đặt và Sử dụng MySQL

19 Oct, 2024

Tran Thuy Vy

Frontend Developer

MySQL là một hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) mã nguồn mở, sử dụng ngôn ngữ truy vấn cấu trúc (SQL) để quản lý và thao tác dữ liệu

MySQL là gì? Hướng dẫn Cài đặt và Sử dụng MySQL

Mục Lục

Trong bài viết này, chúng ta sẽ cùng tìm hiểu MySQL là gì, lịch sử phát triển của nó, những ưu và nhược điểm, quy trình thực hiện truy vấn, cũng như hướng dẫn cài đặt và sử dụng MySQL. Nếu bạn đang tìm kiếm một hệ quản trị cơ sở dữ liệu, hãy thử khám phá MySQL nhé.

1. MySQL là gì?

MySQL là một hệ quản trị cơ sở dữ liệu quan hệ (Relational Database Management System - RDBMS) mã nguồn mở, sử dụng ngôn ngữ truy vấn cấu trúc (SQL) để quản lý và thao tác dữ liệu. MySQL tổ chức và lưu trữ dữ liệu dưới dạng các bảng, trong đó các bảng có thể liên kết với nhau thông qua các khóa (keys).

MySQL được sử dụng rộng rãi trong việc phát triển các ứng dụng web. Nhiều công ty lớn như: Facebook, Twitter, và YouTube sử dụng MySQL để quản lý dữ liệu.

mysql là gì

2. Lịch sử phát triển của MySQL

MySQL được tạo ra bởi ba nhà phát triển: Michael Widenius, David Axmark và Allan Larsson vào năm 1995. Họ muốn tạo ra một hệ quản trị cơ sở dữ liệu nhanh, đáng tin cậy và dễ sử dụng cho các dự án của mình.

Năm 2008, công ty Sun Microsystems mua lại MySQL AB, công ty phát triển MySQL, với giá 1 tỷ USD. Sau đó, vào năm 2010, Oracle Corporation mua lại Sun Microsystems, và từ đó, MySQL trở thành một phần của Oracle.

3. Ưu, nhược điểm của MySQL

3.1 Ưu điểm của MySQL

  • MySQL là phần mềm mã nguồn mở, cho phép người dùng sử dụng và tùy chỉnh mà không cần phải trả phí.
  • Được thiết kế để xử lý dữ liệu nhanh chóng và hiệu quả, MySQL phù hợp với các ứng dụng web đòi hỏi tốc độ cao và khả năng phản hồi nhanh.
  • Có nhiều tài liệu, hướng dẫn về cú pháp SQL phù hợp với cả người mới bắt đầu.
  • Cung cấp nhiều tính năng bảo mật như xác thực người dùng, mã hóa dữ liệu và quản lý quyền truy cập chi tiết, giúp bảo vệ dữ liệu quan trọng.
  • MySQL có thể xử lý từ các cơ sở dữ liệu nhỏ đến các hệ thống lớn với hàng triệu bản ghi, dễ dàng mở rộng khi nhu cầu tăng lên mà không cần thay đổi cấu trúc hệ thống.
  • Hỗ trợ các tính năng transaction đảm bảo tính toàn vẹn và nhất quán của dữ liệu, giúp quản lý các thao tác dữ liệu phức tạp.

3.2 Nhược điểm của MySQL

  • So với các hệ quản trị cơ sở dữ liệu như PostgreSQL, MySQL thiếu một số tính năng nâng cao như hỗ trợ đầy đủ cho các truy vấn phức tạp, hệ thống kiểu dữ liệu phong phú hơn, và các tính năng phân tích dữ liệu tiên tiến.
  • MySQL có thể gặp vấn đề về hiệu suất, thời gian phản hồi chậm khi xử lý lượng dữ liệu cực kỳ lớn hoặc các truy vấn rất phức tạp,
  • Một số tính năng không thể tùy chỉnh hoặc mở rộng theo nhu cầu cụ thể của doanh nghiệp, hạn chế khả năng thích ứng với các yêu cầu đặc thù.
  • Việc quản lý quyền truy cập chi tiết cho nhiều người dùng và vai trò khác nhau có thể trở nên phức tạp và khó khăn.
  • Mặc dù có cộng đồng lớn, nhưng việc không có hỗ trợ chính thức miễn phí từ nhà phát triển có thể gây khó khăn khi gặp các vấn đề phức tạp hoặc lỗi hệ thống nghiêm trọng.
  • MySQL có một số mở rộng và khác biệt so với chuẩn SQL, điều này có thể gây khó khăn khi chuyển đổi hoặc tích hợp với các hệ quản trị cơ sở dữ liệu khác.

4. Quy trình thực hiện truy vấn

Khi bạn gửi một câu lệnh SQL đến MySQL, hệ thống sẽ thực hiện các bước sau:

B1: Kết nối và xác thực

  • MySQL nhận yêu cầu kết nối từ client.
  • Xác thực người dùng dựa trên thông tin đăng nhập.
  • Thiết lập kết nối nếu xác thực thành công.

B2: Phân tích cú pháp

  • Câu lệnh SQL được phân tích cú pháp.
  • Kiểm tra cú pháp và tạo parse tree để hiểu cấu trúc của câu lệnh.

B3: Tối ưu hoá truy vấn

  • Bộ tối ưu hóa truy vấn xem xét các thực thi khác nhau.
  • Chọn kế hoạch tối ưu nhất dựa trên thông tin về chỉ mục, số lượng bản ghi và các thống kê khác.

B4: Thực thi truy vấn

  • Kế hoạch thực thi được gửi đến bộ thực thi.
  • Bộ thực thi tương tác với Storage Engine để truy xuất hoặc thay đổi dữ liệu.

B5: Trả ra kết quả

  • Kết quả truy vấn được gửi trả về cho client.
  • Kết nối có thể được giữ nguyên cho các truy vấn tiếp theo hoặc sẽ đóng lại.

Ví dụ như bạn gửi một câu truy vấn thế này:

Sql
SELECT * FROM hoc_sinh WHERE tuoi > 15;
  • Phân tích cú pháp: kiểm tra cú pháp, xác định bảng "hoc_sinh" và điều kiện "tuoi > 15".
  • Tối ưu hóa truy vấn: kiểm tra xem cột "tuoi" có gắn index hay không, xác định phương pháp truy xuất dữ liệu hiệu quả nhất.
  • Thực thi truy vấn: truy xuất dữ liệu từ bảng "hoc_sinh" với điều kiện.
  • Trả kết quả: trả về danh sách học sinh có tuổi lớn hơn 15.

5. Sự khác nhau giữa MySQL và SQL Server

MySQL
SQL Server
Được phát triển bởi Oracle Được phát triển bởi Microsoft
Cung cấp hỗ trợ một số ngôn ngữ bổ sung như Perl, Tcl, Haskey,... Hỗ trợ ngôn ngữ lập trình như C++, JAVA, Ruby, Visual Basic, Delphi, R,...
Cú pháp MySQL hơi phức tạp Cú pháp SQL Server rất đơn giản và dễ sử dụng
Cần ít dung lượng lưu trữ hoạt động hơn Yêu cầu một lượng lớn không gian lưu trữ hoạt động
Không cho phép hủy query giữa chừng Cho phép hủy query giữa chừng
Chặn cơ sở dữ liệu trong khi sao lưu dữ liệu Không chặn cơ sở dữ liệu trong khi sao lưu dữ liệu
Là mã nguồn mở, được cung cấp miễn phí Không miễn phí
Có sẵn trong MySQL Standard Edition, MySQL Enterprise Edition và MySQL Cluster Grade Edition Có sẵn trong nhiều phiên bản, chẳng hạn như Enterprise, Standard, Web, Workgroup hoặc Express
khác nhau giữa mysql và sql server

6. Hướng dẫn download và cài đặt MySQL

6.1 Với file .exe

  • Bước 1: Truy cập vào trang chủ MySQL, ở đây bạn có thể chọn phiên bản muốn download.
  • Bước 2: Sẽ có hai option để bạn lựa chọn.
Hướng dẫn tải và cài đặt mysql
  • Bước 3: Sau khi quá trình tải xong, giải nén và chạy file MSI installer .exe
cai dat mysql
  • Bước 4: Tiếp theo, bạn hãy chọn Setup Type. Có một số loại có sẵn, bạn có thể chọn tuỳ chỉnh thích hợp để cài đặt. Ở hướng dẫn này, mình sẽ chọn Full rồi click Next.
cai dat mysql
  • Bước 5: Sau khi click Next, có thể không thể cài đặt được do thiếu requirements, bạn có thể click Execute, nó sẽ tự động cài đặt tất cả requirements.
cai dat mysql
  • Bước 6: Bạn sẽ thấy danh sách các products được cài đặt. Đến đây, nếu bạn cần tất cả, hãy click Execute.
cai dat mysql
  • Bước 7: Việc của bạn là chờ nó tải và cài đặt tất cả. Hoàn tất bạn click Next
cai dat mysql
  • Bước 8: Tiếp theo, bạn cần configure MySQL Server và Router. Next thôi
cai dat mysql
  • Bước 9: Mình cần configure MySQL Server, bạn hãy chọn Standalone MySQL Server/Classic MySQL Replication và click Next.
cai dat mysql
  • Bước 10: Hệ thống sẽ yêu cầu bạn chọn Config Type and other connection options. Trong ví dụ này, nếu bạn không muốn chạy trên port khác như 3307 thì sửa thôi, còn lại thì bạn để mặc định và next nha.
cai dat mysql
  • Bước 11: Cái nào RECOMMENDED thì chọn và next nhé
cai dat mysql
  • Bước 12: Tiếp theo, bạn sẽ điền mật khẩu (nhớ mật khẩu này nhé), click Next.
Hướng dẫn cài đặt MySQL
  • Bước 13: Xuất hiện màn hình yêu cầu bạn configure Windows Service để khởi động server, tiếp đến bạn click Next.
cai dat mysql
  • Bước 14: Click Execute.
  • Bước 15: Sau khi configuration xong. Bạn hãy click Finish để tiếp tục.
  • Bước 16: Đến đây bạn sẽ thấy Product Configuration đã cài đặt thành công. Hãy click Next sau đó click Finish để hoàn tất cài đặt MySQL packages.
  • Bước 17: Hãy click Next sau đó click Finish rồi lại click Next.
  • Bước 18: Tới đây, bạn có thể test connect bằng cách bạn sẽ nhập username là root và mật khẩu mà bạn đã set trước đó.

Rồi click Check để kiểm tra xem kết nối có thành công hay không. Nếu kết nối thành công, bạn click Execute. Lúc này, configuration đã hoàn tất, click Next.

Bước 19: Bạn hãy chọn các configurations đã áp dụng và click Execute.

  • Bước 20: Sau khi hoàn thành các bước trên, bạn sẽ thấy màn hình bên dưới xuất hiện, hãy click Finish.
  • Bước 21: Quá trình cài đặt MySQL đã hoàn tất, click Finish.

6.2 Với Docker

Nếu bạn đã cài đặt Docker, bạn có thể dùng Docker để chạy container MySQL với câu lệnh sau:

Bash
docker run -d --name demo-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=my-root-pass -e MYSQL_DATABASE=todo_db mysql:8.3.1

7. Các câu lệnh cơ bản trong MySQL

  • Hiển thị danh sách database:
Sql
SHOW DATABASES;
  • Chọn database để sử dụng:
Sql
USE ten_db;
  • Hiển thị danh sách các table:
Sql
SHOW TABLES;
  • Xem cấu trúc của table:
Sql
DESCRIBE ten_bang;
  • Thoát khỏi MySQL Shell:
Sql
EXIT;
  • Tạo database mới:
Sql
CREATE DATABASE ten_db;
  • Xoá database:
Sql
DROP DATABASE ten_db;
  • Tạo table mới:
Sql
CREATE TABLE hoc_sinh (
    id INT AUTO_INCREMENT PRIMARY KEY,
    ho_ten VARCHAR(100),
    tuoi INT,
    lop VARCHAR(10)
);

Tạo bảng hoc_sinh để lưu thông tin học sinh.

  • Xoá bảng:
Sql
DROP TABLE ten_bang;
  • Thêm dữ liệu vào bảng:
Sql
INSERT INTO hoc_sinh (ho_ten, tuoi, lop)
VALUES ('200Lab', 20, 'K70');
  • Cập nhật dữ liệu:
Sql
UPDATE hoc_sinh
SET tuoi = 21
WHERE ho_ten = '201Lab';
  • Xoá dữ liệu:
Sql
DELETE FROM hoc_sinh
WHERE ho_ten = '201Lab';
  • Lấy tất cả dữ liệu từ table:
Sql
SELECT * FROM hoc_sinh;
  • Lọc dữ liệu theo điều kiện:
Sql
SELECT ho_ten, tuoi FROM hoc_sinh WHERE lop = 'K70';
  • Sắp xếp dữ liệu:
Sql
SELECT * FROM hoc_sinh ORDER BY tuoi DESC;
  • Đếm số lượng học sinh:
Sql
SELECT COUNT(*) FROM hoc_sinh;
  • Tính tuổi trung bình của học sinh:
Sql
SELECT AVG(tuoi) FROM hoc_sinh;

8. Kết luận

Hy vọng qua bài viết này, bạn đã hiểu rõ hơn về MySQL, cách cài đặt và sử dụng nó, cũng như cách nó hoạt động.

Các bài viết liên quan:

Bài viết liên quan

Lập trình backend expressjs

xây dựng hệ thống microservices
  • Kiến trúc Hexagonal và ứng dụngal font-
  • TypeScript: OOP và nguyên lý SOLIDal font-
  • Event-Driven Architecture, Queue & PubSubal font-
  • Basic scalable System Designal font-

Đăng ký nhận thông báo

Đừng bỏ lỡ những bài viết thú vị từ 200Lab