Tại sao index composite có thể hiệu quả hơn nhiều index đơn trong SQL Server

Index là một kỹ thuật giúp nâng cao hiệu suất tìm kiếm được nhanh hơn trong SQL Server. Trong bài viết này Stanford sẽ giúp bạn học sql tìm hiểu tại sao Index Composite hiệu quả hơn nhiều Index đơn.

Giới thiệu về Index trong SQL Server

Index (hay chỉ mục) là một cấu trúc dữ liệu để tăng hiệu suất truy vấn của cơ sở dữ liệu. 
Index cho phép cơ sở dữ liệu thực hiện một số câu truy vấn có điều kiện nhanh hơn so với thông thường. Tuy nhiên index cũng được lưu trên bộ nhớ và tiêu tốn không gian bộ nhớ và thời gian để tạo, cập nhật index nên khi sử dụng index cần phải suy xét kĩ.


Tại sao index composite hiệu quả hơn nhiều index đơn

Composite index (chỉ mục tổ hợp) có thể hiệu quả hơn nhiều index đơn trong SQL Server vì những lý do sau:
1. Tối ưu truy vấn có nhiều điều kiện WHERE:

SELECT * FROM Orders
WHERE CustomerID = 123 AND ProductID = 456;
Nếu bạn có 2 index đơn:
+ IX_Orders_CustomerID (CustomerID)
+ IX_Orders_ProductID (ProductID)
Khi đó SQL Server phải chọn 1 trong 2, hoặc dùng kết hợp Index Intersection (kém hiệu quả hơn).
Nếu bạn có 1 composite index:
+ IX_Orders_Customer_Product (CustomerID, ProductID) với cú pháp tạo như sau:
go
CREATE CLUSTERED INDEX ix_Orders_Customer_Product ON NhanVien(CustomerId, ProductId);
Khi đó SQL Server có thể truy cập trực tiếp đến đúng dòng dữ liệu nhanh hơn.

2. Giảm số lượng index cần tạo
+ Mỗi index đều tiêu tốn bộ nhớ, thời gian cập nhật, và tài nguyên hệ thống.
+ Composite index giúp gom nhiều điều kiện truy vấn vào 1 index duy nhất → hiệu quả hơn về mặt quản lý.
3. Hỗ trợ sắp xếp (ORDER BY) và nhóm (GROUP BY)

SELECT CustomerID, ProductID, COUNT(*)
FROM Orders
GROUP BY CustomerID, ProductID;

Khi đó Composite index (CustomerID, ProductID) sẽ giúp truy vấn này chạy nhanh hơn vì dữ liệu đã được sắp xếp theo đúng thứ tự.
Lưu ý khi dùng composite index:
+ Thứ tự cột rất quan trọng: (CustomerID, ProductID) khác với (ProductID, CustomerID)
+ Composite index chỉ hỗ trợ tốt khi truy vấn sử dụng các cột đầu tiên trong index
Kết luận

Như vậy qua bài viết này Stanford đã giúp các bạn học sql hiểu hơn tại sao sử dụng index composite hiệu quả cao hơn index đơn trong SQL Server khi làm việc với truy vấn SQL phức tạp với nhiều tiêu chí lọc khi tìm kiếm thông tin.

Bên cạnh đó nếu bạn đang muốn được đào tạo bài bản từ cơ bản đến nâng cao có thể tham gia ngay khóa học sql cùng chuyên gia giàu kinh nghiệm Stanford tại đây: http://bit.ly/2SLPYFF và nhận ưu đãi hấp dẫn của Stanford trong thời gian này. Bạn có thể gọi theo hotline: 0963 723 236 - 0866 586 366 để được gọi lại tư vấn trực tiếp nhé.

=============================
☎ STANFORD – ĐÀO TẠO VÀ PHÁT TRIỂN CÔNG NGHỆ
Hotline: 0963 723 236 - 0866 586 366
Website: https://stanford.com.vn
Facebook: http://bit.ly/2FN0TYb
Youtube: http://bit.ly/2TkKT7I

Tags: tìm hiểu index composite, index trong sql server