Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 31

Thuyết trình

Nhóm

Môn: Cơ Sở Dữ Liệu
GV: Hồ Huỳnh Phong
Thành viên nhóm

Nguyễn Trung Dũng Hoàng Thiên Bình


Nguyên

Đỗ Đặng Bảo Nguyên


Võ Hoàng Nhật Trường
Nội dung thuyết trình

I. Khái niệm

II. Các cách tối ưu

III. Hiệu quả khi được


tối ưu
I. Khái niệm
1.Khái niệm về SQL
-SQL (Structured Query Language) là một ngôn ngữ lập trình dùng
để quản lý và tương tác với cơ sở dữ liệu quan hệ (Relational Database
Management System). SQL được sử dụng để thực hiện các thao tác như
truy vấn dữ liệu, cập nhật dữ liệu, chèn dữ liệu, xóa dữ liệu và quản lý cấu
trúc của cơ sở dữ liệu.

2. Truy vấn dữ liệu


-Truy vấn dữ liệu trong SQL là quá trình lấy thông tin từ cơ sở dữ
liệu. Câu truy vấn thường sử dụng câu lệnh SELECT.
Dưới đây là một số ví dụ về truy vấn dữ liệu trong SQL:
SELECT Hoten, Gioitinh, Email FROM NhanVien;
SELECT * FROM KhachHang;
3. Tối ưu câu hỏi truy vấn
SQL
-Tối ưu hóa câu hỏi truy vấn SQL là
quá trình cải thiện hiệu suất và hiệu quả
của câu lệnh truy vấn.
-Nhằm đảm bảo rằng cơ sở dữ liệu
được trả về kết quả một cách nhanh
chóng và hiệu quả.
=>Tối ưu SQL không chỉ là một vấn đề
kỹ thuật mà còn ảnh hưởng đến trải
nghiệm người dùng, hiệu suất hệ thống,
và khả năng mở rộng của ứng dụng hoặc
dịch vụ.
II. Các cách tối ưu
ĐÁNH INDEX Ở CÁC CỘT SỬ DỤNG WHERE,
ORDER BY, GROUP BY

- Ví dụ dưới đây khi chạy một câu


lệnh SQL với 500 rows mà không
sử dụng index:
ĐÁNH INDEX Ở CÁC CỘT SỬ DỤNG WHERE,
ORDER BY, GROUP BY
- Để sửa lại tối ưu cho câu truy vấn trên ta chỉ cần đánh
index vào cột customer_id:

-Chạy lại câu truy vấn bên trên sẽ cho ra kết quả:
TỐI ƯU CÂU LỆNH BẰNG UNICON

- Ví dụ trong trường hợp dưới đây:

mysql> select * from students where first_name like 'A%' or last_name like 'B%' ;

- Câu truy vấn trên có thêm được tối ưu hơn bằng cách sử
dụng union để tận dụng index đã đánh:

mysql> select from students where first_name like 'A%' union all select from
students where last_name like 'B%' ;
TRÁNH SỬ DỤNG CÂU TRUY VẤN CÙNG LIKE
VỚI ‘%’ PHÍA TRƯỚC
- Hãy xem xét câu truy vấn dưới đây:

mysql> select * from students where first_name like '%A' ;

- Sử dụng EXPLAIN để xem chi tiết hơn:


SỬ DỤNG TRUY VẤN CỦA MYSQL FULL-TEXT
SEARCH
- Để thêm full-text search index ta sử dụng câu lệnh:

mysql>Alter table students ADD FULLTEXT (first_name, last_name);


mysql>Select * from students where match(first_name, last_name) AGAINST ('A');

- Chạy EXPLAIN có kết quả như sau:


TỐI ƯU DATABASE SCHEMA

- Tối ưu hóa kiểu dữ liệu:

Ví dụ: khi thiết kế bảng user chỉ chứa nhỏ hơn 100 bản
ghi, chúng ta nên sử dụng 'TINYINT' cho cột user_id.

- Tránh null value:

Ví dụ: trong trường hợp tính toán tiền của order mà một
cột nào đó chứa null thì có thể dẫn đến kết quả không
mong muốn mà ta phải sử dụng thêm điều kiện "if not
null".
SỬ DỤNG MYSQL QUERY CACHING

Có thể check nếu Mysql server sử dụng query


cache hay không bằng cách chạy câu lệnh:
SỬ DỤNG MYSQL QUERY CACHING

* Seting mysql query cache: Ta có thể setting mysql query cache bằng cách
edit file '/etc/mysql/my.cnf' hoặc '/etc/mysql/mysql.conf.d/mysqld.cnf'. Để
check value của query cache ta sử dụng command:
SỬ DỤNG MYSQL QUERY CACHING

- Có thể thay đổi giá trị trên bằng cách thay đổi trong file config:
III. Hiệu quả
khi được tối ưu
w

RUS
• Khi được điều chỉnh đúng cách cơ sở dữ liệu sẽ mang lại hiệu năng
tuyệt vời. Nó không chỉ làm giảm tải tác vụ không cần thiết mà còn
tối ưu hóa cơ sở dữ liệu để truy xuất nhanh hơn, tránh được các sự
cố không mong muốn xảy ra như deadlock, thiếu hụt tài nguyên,...
dấn tới những hậu quả nghiêm trọng. Đặc biệt là khi xử lý các hệ
thống có quy mô lớn hoặc cần đáp ứng yêu cầu có hiệu suất cao.

Tối ưu cơ sở dữ liệu mang lại

RUS hiệu quả như thế nào


1. Tăng tốc
độ truy vấn

Tối ưu hóa giúp


giảm thời gian truy
vấn, làm cho các
truy vấn diễn ra
nhanh chóng hơn.
Điều này cực kỳ
w quan trọng khi xử
lý lượng dữ liệu lớn
và đồng thời cải
thiện trải nghiệm
người dùng.

RUS
2. Tiết kiệm tài
nguyên hệ thống

Bằng cách giảm


lượng dữ liệu được
truy vấn hoặc sử
dụng chỉ số, tối ưu
hóa giúp giảm áp
lực lên tài nguyên
w hệ thống, bao gồm
bộ nhớ và CPU.

RUS
3. Tăng hiệu
suất ứng dụng

Ứng dụng sử dụng


cơ sở dữ liệu tối
ưu hóa có thể hoạt
động mượt mà và
đáp ứng nhanh
chóng hơn, giúp
w cải thiện trải
nghiệm người
dùng và tăng tính
sẵn sàng của hệ
thống.

RUS
w

RUS
4. Giảm Chi Phí Vận Hành:
Tối ưu hóa giúp giảm chi phí
vận hành hệ thống, vì nó giảm
tải cho các tài nguyên hệ thống
và giúp ngăn chặn việc phải
nâng cấp phần cứng quá
thường xuyên.

RUS
4. Giảm Chi Phí Vận Hành: 5. Tăng Khả Năng Mở Rộng:
Tối ưu hóa giúp giảm chi phí Cơ sở dữ liệu được tối ưu hóa
vận hành hệ thống, vì nó giảm dễ dàng mở rộng, giúp hệ
tải cho các tài nguyên hệ thống thống đáp ứng được với sự gia
và giúp ngăn chặn việc phải tăng của dữ liệu và người dùng
nâng cấp phần cứng quá mà không làm suy giảm hiệu
thường xuyên. suất.

RUS
4. Giảm Chi Phí Vận Hành: 5. Tăng Khả Năng Mở Rộng:
Tối ưu hóa giúp giảm chi phí Cơ sở dữ liệu được tối ưu hóa
vận hành hệ thống, vì nó giảm dễ dàng mở rộng, giúp hệ
tải cho các tài nguyên hệ thống thống đáp ứng được với sự gia
và giúp ngăn chặn việc phải tăng của dữ liệu và người dùng
nâng cấp phần cứng quá mà không làm suy giảm hiệu
thường xuyên. suất.

w
6. Bảo Mật Dữ Liệu:
Tối ưu hóa cơ sở dữ liệu có thể
đi kèm với cải thiện bảo mật,
giúp ngăn chặn các tấn công
và đảm bảo tính toàn vẹn của

RUS
dữ liệu.
4. Giảm Chi Phí Vận Hành: 5. Tăng Khả Năng Mở Rộng:
Tối ưu hóa giúp giảm chi phí Cơ sở dữ liệu được tối ưu hóa
vận hành hệ thống, vì nó giảm dễ dàng mở rộng, giúp hệ
tải cho các tài nguyên hệ thống thống đáp ứng được với sự gia
và giúp ngăn chặn việc phải tăng của dữ liệu và người dùng
nâng cấp phần cứng quá mà không làm suy giảm hiệu
thường xuyên. suất.

w
6. Bảo Mật Dữ Liệu: 7. Dễ Dàng Quản Lý:
Tối ưu hóa cơ sở dữ liệu có thể Các cơ sở dữ liệu được tối ưu
đi kèm với cải thiện bảo mật, hóa thường dễ quản lý hơn,
giúp ngăn chặn các tấn công với khả năng giảm thiểu sự
và đảm bảo tính toàn vẹn của phức tạp trong việc duy trì và

RUS
dữ liệu. điều chỉnh cấu trúc dữ liệu.
Câu hỏi ôn tập
1.SQL là viết tắt của gì?
A. Structured Query Language
B. B. System Query Language
C. Sequential Query Language
2.SQL được sử dụng để làm gì?
A. Lập trình game
B. Quản lý và tương tác với cơ sở dữ liệu
C. Thiết kế website
3.Tối ưu SQL là gì?
A. Quá trình cải thiện hiệu suất và hiệu quả của truy vấn SQL
B. Giảm số lượng bảng trong cơ sở dữ liệu
C. Chỉ sử dụng một loại chỉ mục
4.Chức năng chính của chỉ mục trong SQL là gì?
A. Giữ nguyên dữ liệu không thay đổi
B. Tìm kiếm nhanh dữ liệu
C. Xóa dữ liệu không cần thiết
5.Trong SQL, việc viết truy vấn hiệu quả bao gồm gì?
A. Sử dụng nhiều bảng hơn
B. Chọn ra các cột cần thiết, sử dụng điều kiện phù hợp
C. Chỉ sử dụng các hàm phức tạp
6.Lợi ích chính của việc tối ưu SQL là gì?
A. Tăng cường trải nghiệm người sử dụng, giảm tải cho cơ sở dữ liệu
B. Tăng kích thước cơ sở dữ liệu
C. Giảm khả năng mở rộng
7. Tối ưu SQL giúp gì cho hiệu suất của truy vấn?
A. Làm truy vấn chạy chậm hơn
B. Làm truy vấn chạy nhanh hơn
C. Không có ảnh hưởng gì đến hiệu suất
8.Trong SQL, câu lệnh SELECT được sử dụng để làm gì?
A. Thêm dữ liệu mới
B. Truy vấn dữ liệu
C. Xóa dữ liệu
9.Để tạo chỉ mục trong SQL, bạn sử dụng câu lệnh nào?
A. CREATE INDEX
B. ADD INDEX
C. INDEX TABLE
10.SQL là ngôn ngữ lập trình chủ yếu được sử dụng cho cơ sở dữ liệu nào?
A. NoSQL
B. MySQL
C. Relational databases
11. Trong SQL, để cập nhật dữ liệu trong bảng, bạn sử dụng câu lệnh nào?
A. MODIFY
B. UPDATE
C. CHANGE DATA
12. Chức năng của GROUP BY trong SQL là gì?
A. Nhóm các bản ghi theo cột chỉ định
B. Sắp xếp kết quả truy vấn
C. Lọc dữ liệu theo điều kiện
13. Trong SQL, để chọn tất cả các bản ghi từ một bảng, bạn sử dụng câu lệnh nào?
A. SELECT *
B. SELECT FIRST
C. RETRIEVE ALL
14. Chức năng của câu lệnh WHERE trong SQL là gì?
A. Sắp xếp kết quả truy vấn
B. Lọc dữ liệu dựa trên điều kiện
C. Thêm dữ liệu mới vào bảng
15. Trong SQL, cấu trúc bảng được định nghĩa bởi câu lệnh nào?
A. CREATE TABLE
B. DEFINE TABLE
C. TABLE STRUCTURE
Cảm ơn thầy và các
bạn đã lắng nghe!

You might also like