Có bao giờ bạn tự hỏi câu truy vấn sử dụng index như thế nào? Index là gì? Có cấu tạo thế nào mà câu truy vấn lại nhanh hơn nhiều như thế? Bài viết hôm nay sẽ giúp các bạn hiểu rõ hơn về index để có thể tự trả lời những câu hỏi tương tự như vậy.
Bạn đang xem: Index trong sql là gì
Tìm dữ liệu trong một tập nhiều dòng
Tập dữ liệu không có thứ tự
Dữ liệu trong cơ sở dữ liệu quan hệ được lưu trữ dưới dạng bảng, hay có thể nói cách khác là hàng và cột. Nhìn vào bảng dữ liệu trong hình dưới đây và bạn hãy trả lời truy vấn “tìm nhân viên có ID bằng 5”. Bạn sẽ làm thế nào?






Hình 5: Nội dung page root của clustered index
Page root có ID 401 và nội dung của nó có 4 dòng chứa key ID lần lượt NULL, 5, 9, 13.
Xem thêm: Sửa Lỗi Không Xem Được Video Trên Chrome, Các Sự Cố Khi Xem Phim Online Và Cách Khắc Phục
Mỗi dòng này link tới page ở level 0 có pageID ở chột ChildPageId. Giống như những gì chúng ta thấy trong hình 3.
Vậy khi tìm kiếm một giá trị, SQL Server sẽ bắt đầu từ root page, lần theo giá trị trong page đó đi xuống các level thấp hơn và cuối cùng sẽ đến được page chứa giá trị cần tìm. Thời gian của việc tìm kiếm này phụ thuộc vào chiều cao của index (số lượng level). Và số lượng level phụ thuộc vào kích thước index key.
Tóm lại clustered index trong SQL Server có các đặc điểm sau
Dữ liệu của bảng sẽ được sắp xếp theo thứ tự clustered keySử dụng cấu trúc B-Tree để tạo ra các cấp độ lưu trữ key hỗ trợ tìm kiếmIndex có level càng cao thì việc tìm kiếm càng tốn thời gian hơnLevel của index phụ thuộc vào độ lớn dữ liệu trong bảng và kích thước của index key
Chuyên mục: Tổng hợp tin hay