Sự khác biệt giữa Clustered và Non-clustered index

Sự khác biệt chính giữa Clustered và Non-clustered Index

  • Chỉ mục cụm là một loại chỉ mục sắp xếp các hàng dữ liệu trong bảng theo giá trị khóa của chúng, trong khi chỉ mục Không phân cụm lưu trữ dữ liệu tại một vị trí và chỉ mục ở một vị trí khác.
  • ClusterPhương pháp ed index lưu trữ các trang dữ liệu trong các nút lá của chỉ mục, trong khi phương pháp Non-clustered index không bao giờ lưu trữ các trang dữ liệu trong các nút lá của chỉ mục.
  • Chỉ mục cụm không yêu cầu dung lượng đĩa bổ sung, trong khi chỉ mục Không phân cụm yêu cầu dung lượng đĩa bổ sung.
  • Cluster chỉ mục cung cấp khả năng truy cập dữ liệu nhanh hơn, mặt khác, chỉ mục không phân cụm chậm hơn.
Sự khác biệt giữa Clustered và Non-clustered Index
Clustered so với Chỉ mục không nhóm

Chỉ số là gì?

Chỉ mục là một khóa được tạo từ một hoặc nhiều cột trong cơ sở dữ liệu nhằm tăng tốc độ tìm nạp các hàng từ bảng hoặc dạng xem. Khóa này giúp Cơ sở dữ liệu như Oracle, Máy chủ SQL, MySQL, v.v. để nhanh chóng tìm thấy hàng được liên kết với các giá trị khóa.

Hai loại chỉ mục là:

  • Clusterchỉ mục ed
  • KhôngClusterchỉ mục ed

Một Clusterchỉ số ed?

Cluster index là một loại index sắp xếp các hàng dữ liệu trong bảng theo giá trị khóa của chúng. Trong Cơ sở dữ liệu, chỉ có một index nhóm cho mỗi bảng.

Chỉ mục được nhóm xác định thứ tự dữ liệu được lưu trữ trong bảng và chỉ có thể được sắp xếp theo một cách. Vì vậy, chỉ có thể có một chỉ mục nhóm duy nhất cho mỗi bảng. Thông thường, trong RDBMS, khóa chính cho phép bạn tạo chỉ mục được nhóm dựa trên cột cụ thể đó.

Chỉ mục không phân cụm là gì?

Chỉ mục không được nhóm lưu trữ dữ liệu tại một vị trí và chỉ mục ở một vị trí khác. Chỉ mục chứa các con trỏ tới vị trí của dữ liệu đó. Một bảng có thể có nhiều chỉ mục không được nhóm vì một chỉ mục trong chỉ mục không được nhóm được lưu trữ ở những nơi khác nhau.

Ví dụ, một cuốn sách có thể có nhiều mục lục, một mục lục ở đầu sách hiển thị nội dung của từng đơn vị sách trong khi mục lục thứ hai hiển thị mục lục các thuật ngữ theo thứ tự bảng chữ cái.
Chỉ mục không phân cụm được xác định trong trường không thứ tự của bảng. Loại phương pháp lập chỉ mục này giúp bạn cải thiện hiệu suất của các truy vấn sử dụng các khóa không được chỉ định làm khóa chính. Chỉ mục không được nhóm cho phép bạn thêm khóa duy nhất cho bảng.

Đặc trưng của Clusterchỉ mục ed

  • Lưu trữ dữ liệu mặc định và được sắp xếp
  • Chỉ sử dụng một hoặc nhiều cột cho một chỉ mục
  • Giúp bạn lưu trữ Dữ liệu và lập chỉ mục cùng nhau
  • Phân mảnh
  • Operations
  • Clusterquét chỉ mục ed và tìm kiếm chỉ mục
  • Tra cứu khóa

Đặc điểm của các chỉ mục không phân cụm

  • Chỉ lưu trữ các giá trị khóa
  • Con trỏ tới Heap/Clustered Hàng chỉ mục
  • Cho phép truy cập dữ liệu thứ cấp
  • Kết nối dữ liệu
  • Operacác chức năng của Quét chỉ mục và Tìm kiếm chỉ mục
  • Bạn có thể tạo chỉ mục không được bao gồm cho bảng hoặc dạng xem
  • Mỗi hàng chỉ mục trong chỉ mục không được phân loại sẽ lưu trữ giá trị khóa không được phân loại và một bộ định vị hàng

Clustered so với Non-clustered Index trong SQL: Sự khác biệt chính

Thông số Clustered Không phân cụm
Dùng cho Bạn có thể sắp xếp các bản ghi và lưu trữ chỉ mục được nhóm trong bộ nhớ theo thứ tự. Chỉ mục không phân cụm giúp bạn tạo thứ tự logic cho các hàng dữ liệu và sử dụng con trỏ cho các tệp dữ liệu vật lý.
Phương pháp lưu trữ Cho phép bạn lưu trữ các trang dữ liệu trong các nút lá của chỉ mục. Phương pháp lập chỉ mục này không bao giờ lưu trữ các trang dữ liệu trong các nút lá của chỉ mục.
Kích thước máy Kích thước của chỉ mục cụm khá lớn. Kích thước của chỉ mục không được phân cụm nhỏ so với chỉ mục được phân cụm.
Truy cập dữ liệu Nhanh hơn Chậm hơn so với chỉ mục cụm
Dung lượng đĩa bổ sung Không yêu cầu Bắt buộc phải lưu trữ chỉ mục riêng
Loại chìa khóa Theo mặc định, khóa chính của bảng là một Clusterchỉ số ed. Nó có thể được sử dụng với ràng buộc duy nhất trên bảng hoạt động như một khóa tổng hợp.
tính năng chính Chỉ mục được nhóm có thể cải thiện hiệu suất truy xuất dữ liệu. Nó nên được tạo trên các cột được sử dụng trong các phép nối.

Một ví dụ về chỉ mục nhóm

Trong ví dụ bên dưới, SalesOrderDetailID là chỉ mục được nhóm. Truy vấn mẫu để lấy dữ liệu

SELECT CarrierTrackingNumber, UnitPrice
FROM SalesData
WHERE SalesOrderDetailID = 6

Ví dụ về chỉ mục được nhóm

Một ví dụ về chỉ mục không được nhóm

Trong ví dụ bên dưới, một chỉ mục không được nhóm được tạo trên OrderQty và ProductID như sau

CREATE INDEX myIndex ON
SalesData (ProductID, OrderQty)

Ví dụ về chỉ mục không được nhóm

Truy vấn sau đây sẽ được truy xuất nhanh hơn so với chỉ mục cụm.

SELECT Product ID, OrderQty
FROM SalesData
WHERE ProductID = 714

Ví dụ về chỉ mục không được nhóm

Ưu điểm của Clusterchỉ mục ed

Ưu điểm/lợi ích của chỉ số nhóm là:

  • Clusterchỉ mục ed là một lựa chọn lý tưởng cho phạm vi hoặc nhóm theo các truy vấn loại tối đa, tối thiểu, đếm
  • Trong loại chỉ mục này, tìm kiếm có thể đi thẳng đến một điểm cụ thể trong dữ liệu để bạn có thể tiếp tục đọc tuần tự từ đó.
  • ClusterPhương thức chỉ mục ed sử dụng cơ chế định vị để xác định vị trí mục nhập chỉ mục ở đầu một phạm vi.
  • Đây là một phương pháp hiệu quả để tìm kiếm theo phạm vi khi yêu cầu một phạm vi giá trị khóa tìm kiếm.
  • Giúp bạn giảm thiểu việc chuyển trang và tối đa hóa số lần truy cập bộ đệm.

Ưu điểm của chỉ mục không phân cụm

Ưu điểm của việc sử dụng chỉ mục không được nhóm là:

  • Chỉ mục không phân cụm giúp bạn truy xuất dữ liệu nhanh chóng từ bảng cơ sở dữ liệu.
  • Giúp bạn tránh được chi phí chung liên quan đến chỉ mục được nhóm
  • Một bảng có thể có nhiều chỉ mục không được nhóm trong RDBMS. Vì vậy, nó có thể được sử dụng để tạo nhiều hơn một chỉ mục.

Nhược điểm của Clusterchỉ mục ed

Dưới đây là những nhược điểm/nhược điểm của việc sử dụng chỉ mục nhóm:

  • Rất nhiều phần chèn theo thứ tự không tuần tự
  • Chỉ mục được nhóm tạo ra nhiều phần chia trang không đổi, bao gồm trang dữ liệu cũng như trang chỉ mục.
  • Làm thêm việc cho SQL để chèn, cập nhật và xóa.
  • Chỉ mục được nhóm mất nhiều thời gian hơn để cập nhật bản ghi khi các trường trong chỉ mục được nhóm thay đổi.
  • Các nút lá chủ yếu chứa các trang dữ liệu trong chỉ mục được nhóm.

Nhược điểm của chỉ mục không phân cụm

Dưới đây là những nhược điểm/nhược điểm của việc sử dụng chỉ mục không được nhóm:

  • Chỉ mục không phân cụm giúp bạn lưu trữ dữ liệu theo thứ tự hợp lý nhưng không cho phép sắp xếp các hàng dữ liệu một cách vật lý.
  • Quá trình tra cứu trên chỉ mục không được nhóm trở nên tốn kém.
  • Mỗi khi khóa phân cụm được cập nhật, cần có một bản cập nhật tương ứng trên chỉ mục không được phân cụm vì nó lưu trữ khóa phân cụm.