Oracle đã chính thức phát hành phiên bản MySQL 8 vào ngày 27/07/2018. MySQL 8.0 được quảng cáo có hiệu xuất nhanh hơn 2 lần so với phiên bản cũ trước đó. Vậy hãy cùng VinaSupport điểm qua các tính năng mới cũng như hướng dẫn cài đặt MySQL 8 từng bước trên Linux.
MySQL là gì?
MySQL là hệ quản trị CSDL lớn và được sử dụng rộng rãi nhất hiện nay. Và phiên bản MySQL 8.0 được xây dựng với việc cải tiến, cho phép các DBA và các developer thiết kế và triển khai trên các hệ thống thế hệ tiếp theo của Web, Nhúng, Mobile và ứng dụng Cloud.
Các tính năng mới của MySQL 8
1. Document Store
MySQL Document Store cho phép phát triển cả SQL và NoSQL sử dụng 1 CSDL duy nhất. Kiến trúc của MySQL Document Store trong MySQL 8.0 được thể hiện qua biểu đồ sau:
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 đang được phát triển cho MySQL Server. Dự án này là một bước tiến lớn, cải thiện nhiều khía cạnh của máy chủ. Từ điển dữ liệu giao dịch cung cấp một cách mới để truy cập siêu dữ liệu để sử dụng cho cả nhà phát triển máy chủ và trình cắm thêm
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 hay còn gọi là câu lệnh WITH là một tính năng mới của MySQL 8, tạm hiểu là 1 cách tạo View / bảng tạm thời để sử dụng trong một truy vấn đơn lẻ và có thể giúp cải thiện khả năng đọc của mã SQL.
6. Window Functions
MySQL hỗ trợ các window functions cho mỗi hàng từ một truy vấn, thực hiện một phép tính bằng cách sử dụng các hàng liên quan đến hàng đó. Từ đó để giảm độ phức tạp của mã và giúp các developers 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
Nguồn: vinasupport.com