Latest Post

Tăng thứ hạng và truy cập tự nhiên với 10 phương pháp SEO hay nhất Kiếm Tiền Online (mmo): Khái Niệm và Các Hình Thức Phổ Biến

Oracle đã chính thức ra mắt MySQL 8 vào ngày 27/07/2018. MySQL 8.0 được tạo ra với lời hứa cải thiện hiệu suất hơn gấp đôi so với phiên bản trước đó. Hãy cùng VinaSupport tìm hiểu về các tính năng mới và hướng dẫn cài đặt MySQL 8 trên hệ điều hành Linux từng bước.

MySQL là gì?

MySQL là một hệ quản trị cơ sở dữ liệu (CSDL) quan trọng và phổ biến nhất hiện nay. Phiên bản MySQL 8.0 được phát triển với những cải tiến đáng kể, mang lại khả năng cho các quản trị cơ sở dữ liệu (DBA) và nhà phát triển (developer) để thiết kế và triển khai hệ thống trên các nền tảng của tương lai như Web, thiết bị nhúng, di động và các ứng dụng đám mây.

Các tính năng mới của MySQL 8

1. Document Store

MySQL Document Store cho phép bạn phát triển ứng dụng sử dụng cả SQL và NoSQL bằng cách sử dụng một cơ sở dữ liệu duy nhất. Kiến trúc của MySQL Document Store trong MySQL 8.0 có thể được minh họa qua biểu đồ dưới đây:

2. Transactional Data Dictionary

Một từ điển dữ liệu mới dựa trên các bảng giao dịch hiện đang được phát triển cho MySQL Server. Dự án này đại diện cho một bước tiến quan trọng trong việc cải thiện nhiều khía cạnh của máy chủ. Từ điển dữ liệu giao dịch này đem đến một cách mới để truy cập siêu dữ liệu, và nó có thể được sử dụng cả cho các nhà phát triển máy chủ và các trình cắm bổ sung.

3. SQL Roles

Để quản lý quyền hạn một cách hiệu quả, MySQL 8.0 cung cấp hai đặc tính liên quan đến quyền hạn mới: MySQL Roles và Dynamic Privileges (Đặc quyền động). Phiên bản MySQL 7 trở về trước chỉ hỗ trợ Privileges.

MySQL Role là một tập hợp các quyền hạn, một user được gán 1 role thì chúng sẽ có đầy đủ các quyền hạn của Role đó.

Ví dụ:

– Để tạo Role trong MySQL các bạn dùng câu lệnh sau:

CREATE ROLE 'app_developer', 'app_read', 'app_write';

– Gán quyền hạn cho Role

GRANT ALL ON app_db.* TO 'app_developer';
GRANT SELECT ON app_db.* TO 'app_read';
GRANT INSERT, UPDATE, DELETE ON app_db.* TO 'app_write';

– Gán role lại cho User

GRANT 'app_developer' TO 'vinasupport_dev'@'localhost';
GRANT 'app_read' TO 'read_user1'@'localhost', 'read_vinasupport'@'localhost';
GRANT 'app_read', 'app_write' TO 'rw_vinasupport'@'localhost';

4. Default character là utf8mb4

Mặc định là ký tự utf8mb4 cho các ứng dụng di động phong phú hơn và các bộ ký tự quốc tế.

5. Common Table Expressions

Common Table Expressions (CTE), còn được gọi là câu lệnh WITH, là một tính năng mới được giới thiệu trong MySQL 8. Đơn giản, nó cho phép bạn tạo một bảng tạm thời hoặc “View” để sử dụng trong một truy vấn duy nhất. CTE có thể giúp tăng cường khả năng đọc và hiểu mã SQL của bạn.

6. Window Functions

MySQL hỗ trợ các chức năng cửa sổ (window functions), cho phép bạn thực hiện các phép tính trên mỗi hàng trong một tập kết quả truy vấn, bằng cách sử dụng thông tin từ các hàng liên quan đến hàng đó. Điều này giúp giảm độ phức tạp của mã SQL và giúp các nhà phát triển làm việc hiệu quả hơn.

7. Invisible Indexes (Chỉ mục ẩn)

Chỉ mục ẩn để quản lý tốt hơn các nâng cấp phần mềm và thay đổi cơ sở dữ liệu cho các ứng dụng chạy 24×7.

Để tạo chỉ mục ẩn, sử dụng từ khóa INVISIBLE

CREATE TABLE t1 (
  i INT,
  j INT,
  k INT,
  INDEX i_idx (i) INVISIBLE
) ENGINE = InnoDB;
CREATE INDEX j_idx ON t1 (j) INVISIBLE;
ALTER TABLE t1 ADD INDEX k_idx (k) INVISIBLE;

8. Descending Indexes (Chỉ số giảm dần)

Chỉ số giảm dần để loại bỏ nhu cầu phân loại kết quả và dẫn đến cải thiện hiệu suất.

CREATE TABLE t (
  c1 INT, c2 INT,
  INDEX idx1 (c1 ASC, c2 ASC),
  INDEX idx2 (c1 ASC, c2 DESC),
  INDEX idx3 (c1 DESC, c2 ASC),
  INDEX idx4 (c1 DESC, c2 DESC)
);

Các tính năng đã được cải thiện trong MySQL 8

  • Hỗ trợ JSON với nhiều bổ sung bao gồm hàm JSON_TABLE () chấp nhận dữ liệu JSON và trả về nó dưới dạng bảng quan hệ.
  • Lên đến 2x nhanh hơn và đạt tối đa 1,8 triệu truy vấn / giây.
  • OpenSSL là thư viện TLS / SSL mặc định trong MySQL.
  • Lược đồ hiệu suất (Performance Schema) với các truy vấn nhanh hơn đến 30 lần.
  • Lược đồ thông tin (Information Schema) với các truy vấn nhanh hơn tới 100 lần.
  • GIS được tăng cường để hỗ trợ các hệ thống địa lý và tham chiếu không gian (SRS).
  • Nhân rộng và cụm InnoDB cho quy mô tốt hơn trong các ứng dụng có khối lượng lớn

Hướng dẫn cài đặt MySQL8 trên máy chủ Ubuntu 18.04 LTS

Bước 1: Thiết lập MySQL APT Repository

Repository của MySQL ở đây: https://dev.mysql.com/downloads/repo/apt/

Các bạn có thể download về để cài đặt hoặc sử dụng command sau để cài đặt (Chú ý version của MySQL APT config)

wget https://dev.mysql.com/get/mysql-apt-config_0.8.10-1_all.deb
sudo dpkg -i mysql-apt-config_0.8.10-1_all.deb

Khi bạn chạy command trên, nó sẽ hiển thị cửa sổ xác nhận, chọn OK để tiếp tục. Sử dụng phim lên xuống và phím <Tab> để lựa chọn

Update lại repository trên Ubuntu sử dụng command sau:

sudo apt update

Kiểm tra xem version của MySQL đã thực sự là 8 chưa? sử dụng command sau: sudo apt-cache show mysql-community-server

Bước 2: Cài đặt MySQL 8

Sau khi thiết lập MySQL APT Repository thì việc cài đặt MySQL 8 trển nên rất dễ đang bằng command sau:

sudo apt install mysql-community-server mysql-community-client

Trong quá trình cài đặt sẽ có 1 form xuất hiện yêu cầu bạn nhập password cho tài khoản Root

Sau khi điền password và retype-password, môt cửa sổ yêu cầu xác nhận lại -> chọn <OK> để tiếp tục.

Chọn “Use Strong Password Encryption (RECOMMEND)” -> Chọn <OK> để tiếp tục

Bước 3: Để xác nhận MySQL đã cài đặt thành công, chúng ta thử kết nối tới MySQL Server bằng command sau:

/usr/bin/mysql -u root -p

Nhập password của tài khoản root, nếu đc kết quả giống như hình bên dưới là bạn đã kết nối thành công tới MySQL Server

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *