- vừa được xem lúc

Vai Trò và Tầm Quan Trọng của "Indexes" Trong Tối Ưu Hóa Truy vấn Cơ Sở Dữ Liệu

0 0 9

Người đăng: Hà Thanh Bình

Theo Viblo Asia

1 Khái quát về Index

Các Index rất quan trọng trong các hệ thống cơ sở dữ liệu vì chúng nâng cao đáng kể hiệu quả xử lý truy vấn. Dưới dây là những lý do chúng được sử dụng.

1.1 Cải thiện hiệu suất truy vấn

  • Tăng tốc độ truy xuất dữ liệu: Index cung cấp cách tra cứu dữ liệu nhanh chóng bằng cách giảm số lượng trang dữ liệu hoặc bản ghi cần quét. Thay vì quét toàn bộ bảng, cơ sở dữ liệu có thể nhanh chóng định vị dữ liệu được lập index.
  • Truy cập nhanh: chúng cho phép truy cập vào các hàng trong bảng dựa trên giá trị của một hoặc nhiều cột. Điều này đặc biệt có lợi cho các truy vấn liên quan đến việc tìm kiếm một giá trị hoặc phamj vi giá trị cụ thể.

1.2 Lọc hiệu quả (Efficient Filtering)

  • WHERE Clause: Index cải thiện hiệu suất của truy vấn với mệnh đề WHERE bằng các phép cơ sở dữ liệu nhanh chóng xác định vị trí các hàng khớp với tiêu chí.
  • Truy vấn phạm vi: Chúng đặc biệt hiệu quả đối với các truy vấn phạm vi (vd: BETWEEN, >, <), cho phép lọc dữ liệu hiệu quả.

1.3 Sắp xếp nâng cao

  • ORDER BY: Index giúp sắp xếp dữ liệu một cách hiệu quả. Nếu một index được tạo trên một cột được sử dungj trong mệnh đề ORDER BY, cơ sở dữ liệu có thể truy xuất dữ liệu đã xếp trực tiếp từ index.
  • GROUP BY: Tương tự như sắp xếp, indexcũng có thể cải thiện hiệu suất của cá hoạt động GROUP BY.

1.4 Faster Joins

  • Join Operation: Indexes trên các * join column* có thể cải thiện đáng kể hiệu suất của các thao tác JOIN bằng cách cho phép cơ sở dữ liệu nhanh chóng tìm thấy các hàng khớp từ các bảng đã nối.

1.5 Tối ưu hóa Aggregate Functions

  • Aggregates: Indexes có thể nâng cao hiệu suất của các hàm tổng hợp như COUNT, SUM, AVG, v.v) bằng cách truy cập nhanh vào các cột được lập chỉ mục.

1.6 Primary and Unique keys

  • Thực thi: Các chỉ mục được sử dụng để thực thi các ràng buộc Primary và Unique key, đảm bảo tính toàn vẹn và duy nhất cảu dữ liệu trong database.

2. Cách hoạt động của Index

2.1 Data Structure

  • Indexes thường được triển khai bằng cách sử dụng các cấu trúc dữ liệu như B-trees hoặc hash tables. B-Trees là cấu trúc cây cân bằng cho phép thực hiện các theo tác chèn, xóa và tra cứu hiệu quả.
  • Một số cơ sở dữ liệu cũng hỗ trợ Index bitmap, rất hữu ích cho các cột có số lượng giá trị riêng biệt hạn chế.

2.2 Các loại Index

  • Clustered Index: Các hàng dữ liệu được lưu trữ theo thứ tự các khóa index. Mỗi bảng chỉ có thể có một Index được nhóm vì bản thân các hàng dữ liệu đã được sắp xếp.

    • Usage: Tạo một clustered Index trên mỗi bảng, thường là trên Primary key.
    • Benefit: Vì các hàng dữ liệu được lưu trữ theo thứ tự nên các truy vấn truy xuất một phạm vi giá trị có thể mang lại lợi ích rất lớn.
    CREATE CLUSTERED INDEX idx_orders_orderdate ON Orders(OrderDate);
    

  • Non-Clustered Index: Chứa danh sách được sắp xếp các giá trị khóa và con trỏ tới các hàng dữ liệu tương ứng. Một bảng có thể có nhiều Index không được nhóm

    • Usage: Tạo các Non-Clustered Index trên các cột thường xuyên đực truy vấn, đặc biệt là các Index được sử dụng trong mệnh đề WHERE, JOINS và Sorting Operations.
    • Benefit: Cung cấp khả năng tra cứu nhanh chóng mà không ảnh hưởng đến thứ tự dữ liệu
    CREATE NONCLUSTERED INDEX idx_orders_customerid ON Orders(CustomerID);
    

Example Scenario

Xem xét một bảng Employees với EmployeeID, FirstNamem, LastName, và DepartmentID .Giả sử bạn thường xuyên truy vấn bảng để tìm nhân viên theo họ.

  • Không có Index:

    SELECT * FROM Employees WHERE LastName = 'Smith';
    

    Cơ sở dữ liệu phải quét toàn bộ bảng, kiểm tra từng hàng để nối LastName với Smith

  • Có Index:

    CREATE INDEX idx_lastname ON Employees(LastName);
    

    Khi Index được tạo trên cột LastName, sơ sở dữ liệu có thể nhanh chóng định vị tất cả bản ghi có họ 'Smith' bằng cách sử dụng Index, tăng tốc đáng kể truy vấn.

Bình luận

Bài viết tương tự

- vừa được xem lúc

Nhập môn lý thuyết cơ sở dữ liệu - Phần 2: Mô hình thực thể liên kết

**Chào các bạn, hôm nay mình tiếp tục viết tiếp phần 2 cho series Nhập môn lý thuyết cơ sở dữ liệu. Chắc hẳn qua bài trước các bạn tìm được lý do vì sao mình phải học môn này rồi chứ.

0 0 68

- vừa được xem lúc

Các vai trò chính trong Data Ecosystem - [Data Analyst Series]

Ngày nay, các tổ chức đang sử dụng dữ liệu để khám phá các cơ hội và mang lại lợi ích trong tương lai. Điển hình là tạo các mô hình trong các giao dịch tài chính để phát hiện gian lận, sử dụng các côn

0 0 47

- vừa được xem lúc

Tìm hiểu về Apache Spark

Ngày nay có rất nhiều hệ thống đang sử dụng Hadoop để phân tích và xử lý dữ liệu lớn. Ưu điểm lớn nhất của Hadoop là được dựa trên một mô hình lập trình song song với xử lý dữ liệu lớn là MapReduce, m

0 0 52

- vừa được xem lúc

Data Warehouse là gì? Top 7 ứng dụng quan trọng của kho dữ liệu

Data Warehouse là gì? Lợi ích và ứng dụng của kho dữ liệu Data Warehouse là gì? Với sự bùng nổ về mặt thông tin và dữ liệu như hiệu này thì đây luôn là những câu hỏi được rất nhiều bạn thắc mắc, đặc b

0 0 35

- vừa được xem lúc

Phân biệt: Database, Data Warehouse, Data Mart, Data Lake, Data Lakehouse, Data Fabric, Data Mesh

Chào mọi người,. Hôm nay, tiếp tục Series Phân tích dữ liệu kinh doanh, mình sẽ chia sẻ với mọi người những khái niệm phổ biến nhất liên quan về thiết kế hệ thống dữ liệu bên dưới nhé, vì khi làm phân

0 0 39

- vừa được xem lúc

Kỹ sư dữ liệu và lộ trình trở thành data engineer (DE) với 4 bước

Data Engineer hay còn gọi là kỹ sư dữ liệu là một trong những vị trí quan trọng trong lĩnh vực khoa học dữ liệu. Với sự phát triển của kỷ nguyên số, nhu cầu chuyển đổi số của các doanh nghiệp ngày càn

0 0 36