Chỉ mục được phân cụm và không được phân cụm: Sự khác biệt chính với ví dụ

Mục lục:

Anonim

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 để 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, SQL Server, MySQL, v.v. tìm thấy hàng được liên kết với các giá trị khóa một cách nhanh chóng.

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

  • Chỉ mục theo cụm
  • Chỉ mục không phân cụm

Trong hướng dẫn này, bạn sẽ học:

  • Chỉ số là gì?
  • Chỉ mục Clustered là gì?
  • Chỉ mục không phân cụm là gì?
  • Đặc điểm của chỉ mục theo cụm
  • Đặc điểm của Chỉ mục không phân cụm
  • Ví dụ về chỉ mục được phân nhóm
  • Ví dụ về chỉ mục không phân cụm
  • Sự khác biệt giữa Chỉ mục được phân nhóm và Chỉ mục không được phân loại
  • Ưu điểm của chỉ mục Clustered
  • Ưu điểm của chỉ mục không phân cụm
  • Nhược điểm của chỉ mục Clustered
  • Nhược điểm của chỉ mục không phân cụm

Chỉ mục Clustered là gì?

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 trên các giá trị chính của chúng. Trong Cơ sở dữ liệu, chỉ có một chỉ mục nhóm cho mỗi bảng.

Chỉ mục được phân cụm xác định thứ tự lưu trữ dữ liệu trong bảng mà 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 một chỉ mục được phân cụ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 phân cụm lưu trữ dữ liệu tại một vị trí và các chỉ mục ở một vị trí khác. Chỉ mục chứa các con trỏ đến vị trí của dữ liệu đó. Một bảng duy nhất có thể có nhiều chỉ mục không phân cụm vì một chỉ mục trong chỉ mục không phân 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 hơn một chỉ mục, một chỉ mục ở đầu hiển thị nội dung của một đơn vị sách trong khi chỉ mục thứ hai hiển thị chỉ mục của 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 sắp xếp 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 khóa không được chỉ định làm khóa chính. Chỉ mục không phân cụm cho phép bạn thêm một khóa duy nhất cho một bảng.

SỰ KHÁC BIỆT CHÍNH

  • 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 các giá trị chính 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à các chỉ mục ở một vị trí khác.
  • Chỉ mục phân cụm 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 chỉ mục không phân cụm 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 thêm dung lượng đĩa trong khi chỉ mục Không phân cụm yêu cầu thêm dung lượng đĩa.
  • Chỉ mục cụm 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.

Đặc điểm của chỉ mục theo cụm

  • 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
  • Hoạt động
  • Quét chỉ mục theo cụm và tìm kiếm chỉ mục
  • Tra cứu chìa khóa

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

  • Chỉ lưu trữ các giá trị chính
  • Con trỏ đến các hàng Chỉ mục Heap / Clustered
  • Cho phép truy cập dữ liệu phụ
  • Cầu nối với dữ liệu
  • Hoạt độ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 hợp nhất cho bảng hoặc chế độ xem
  • Mỗi hàng chỉ mục trong chỉ mục không phân biệt đều lưu trữ giá trị khóa không phân biệt và một bộ định vị hàng

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

Trong ví dụ dưới đây, SalesOrderDetailID là chỉ mục được phân cụm. Truy vấn mẫu để truy xuất dữ liệu

SELECT CarrierTrackingNumber, UnitPriceFROM SalesDataWHERE SalesOrderDetailID = 6

Ví dụ về chỉ mục không phân cụm

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

CREATE INDEX myIndex ONSalesData (ProductID, OrderQty)

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

SELECT Product ID, OrderQtyFROM SalesDataWHERE ProductID = 714

Sự khác biệt giữa Chỉ mục được phân nhóm và Chỉ mục không được phân loại

Thông số Thành cụm Không phân cụm
Sử dụng cho Bạn có thể sắp xếp các bản ghi và lưu trữ vật lý chỉ mục được phân cụm trong bộ nhớ theo thứ tự. Chỉ mục không phân cụm giúp bạn tạo thứ tự hợp lý 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 Kích thước của chỉ mục được phân cụm khá lớn. Kích thước của chỉ mục không 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 nhó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 biệt
Loại chìa khóa Theo mặc định, các khóa chính của bảng là một chỉ mục theo cụm. 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 Một chỉ mục được phân cụm có thể cải thiện hiệu suất của việc truy xuất dữ liệu. Nó phải được tạo trên các cột được sử dụng trong các phép nối.

Ưu điểm của chỉ mục Clustered

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

  • Các chỉ mục được phân nhóm là một tùy 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, số lượng
  • Trong loại chỉ mục này, một 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ừ đó.
  • Phương pháp chỉ mục theo cụm sử dụng cơ chế vị trí để định vị mục nhập chỉ mục ở đầu phạm vi.
  • Đây là một phương pháp hiệu quả để tìm kiếm theo phạm vi khi một phạm vi giá trị khóa tìm kiếm được yêu cầu.
  • Giúp bạn giảm thiểu chuyển trang và tối đa hóa số lần truy cập vào bộ nhớ cache.

Ư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 phân cụ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 chi phí chung liên quan đến chỉ mục nhóm
  • Một bảng có thể có nhiều chỉ mục không phân cụ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 chỉ mục Clustered

Dưới đây là nhược điểm / hạn chế của việc sử dụng chỉ mục được phân cụm:

  • Rất nhiều chèn theo thứ tự không tuần tự
  • Một chỉ mục được phân cụm tạo ra nhiều phần tách trang liên tục, bao gồm trang dữ liệu cũng như các trang chỉ mục.
  • Công việc bổ sung cho SQL để chèn, cập nhật và xóa.
  • Chỉ mục được phân cụ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 phân nhóm được thay đổi.
  • Các nút lá chủ yếu chứa các trang dữ liệu trong chỉ mục được phân cụm.

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

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

  • Chỉ mục không phân cụm giúp bạn lưu trữ dữ liệu theo thứ tự logic 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 phân cụm trở nên tốn kém.
  • Mỗi khi khóa phân cụm được cập nhật, chỉ mục không phân cụm được yêu cầu cập nhật tương ứng vì nó lưu trữ khóa phân cụm.