Clustered Index: Chọn Trường Nào
Do các đặc tính của clustered index, có một vài điểm bạn cần lưu ý khi chọn trường làm clustered index để có thể đạt hiệu quả tối ưu. Một ứng cử viên cho clustered index cần đạt được các chỉ tiêu sau

Kích thước nhỏ: Nói chung với loại index nào thì bạn cũng nên chọn trường nhỏ để giảm kích thước của index. Với clustered index thì tiêu chí này càng quan trọng, vì khóa của nó được dùng trong tất cả các index khác (nonclustered) của bảng để làm con trỏ tới bản ghi. Ví dụ một trường VARCHAR(100) hay trường có kiểu dữ liệu xấp xỉ như FLOAT có lẽ cần được xem xét lại. Tốt nhất là một trường kiểu số nguyên (INT hoặc BIGINT) vì tìm kiếm theo số nguyên luôn nhanh hơn tìm kiếm theo chuỗi ký tự. Và mặc dù clustered index cho phép chứa nhiều trường (index phức hợp) nhưng bạn chỉ nên dùng một trường, cũng vì lý do giữ cho kích thước index nhỏ.

Trường luôn tăng: Khi giá trị mới của trường clustered index luôn tăng lên, các bản ghi mới sẽ luôn được thêm vào cuối bảng. Nếu giá trị này thay đổi bất kỳ, các bản ghi mới có thể được chèn vào giữa bảng. Điều này dẫn đến phân mảnh dữ liệu, tức là các bản ghi kế tiếp nhau một cách logic nhưng lại không được lưu trữ liền kề với nhau (lưu trữ ở các trang khác nhau). Phân mảnh làm cho hệ thống phải truy xuất nhiều hơn để đọc dữ liệu, nhất là khi cần lấy về một dải các bản ghi.

Trường tĩnh: Trường clustered index không nên bị cập nhật thường xuyên, một khi đã có mặt trong bảng thì giá trị của nó cần được giữ nguyên. Khi nó bị cập nhật, bản thân clustered index cũng cần được cập nhật để sắp xếp bản ghi vào vị trí mới cho đúng thứ tự, và đồng thời các nonclustered index khác cũng phải cập nhật theo để cho con trỏ giờ phải chứa giá trị mới. Thao tác cập nhật trường clustered index do vậy rất tốn kém và nếu diễn ra thường xuyên, cũng làm cho clustered index bị phân mảnh.

Cột kiểu tự tăng (IDENTITY) trong nhiều trường hợp rất phù hợp với clustered index vì nó thỏa mãn tất cả các yêu cầu trên: kích thước nhỏ (kiểu INT hoặc BIGINT), luôn tăng, và tĩnh (một khi đã insert thì bạn không mấy quan tâm đến giá trị của nó nữa và hiếm khi cần phải cập nhật). Bạn có thể trước hết hãy dùng cột IDENTITY làm clustered index, và sau đó nếu thấy không thích hợp thì chuyển sang chọn trường khác.

(Sưu tầm)

Bài viết cùng danh mục

Hà Nội: Phòng dịch Covid, phong tỏa tòa chung cư trên phố Ngụy Như Kon Tum
Chia sẻ ANTD.VN - Ngày 9-5, Công an phường Nhân Chính, quận Thanh Xuân, cho biết đơn vị đã phối hợp với các lực lượng chức năng tổ chức lập rào chắn cách ly phong tỏa tòa nhà The Legacy, ngay sau khi xác định 1 trường hợp dương tính Covid sống tại tòa nhà này.
Hà Nội thông báo tìm người liên quan đến các điểm nguy cơ cao COVID-19
Chia sẻ Theo Sở Y tế Hà Nội, tính đến 17 giờ ngày 9/5, trên địa bàn thành phố Hà Nội đã có 38 ca dương tính với SARS-CoV-2 lây nhiễm ngoài cộng đồng.
Đà Nẵng: Ngày đầu người dân đi chợ bằng thẻ để phòng chống dịch Covid-19
Chia sẻ Ngày 9-5, ghi nhận tại các chợ dân sinh tại TP Đà Nẵng như chợ Cồn, chợ đầu mối Hòa Cường, chợ Đống Đa, Chợ Nại Hiên Đông,… đã thực hiện kiểm soát việc ra vào chợ bằng thẻ đi chợ. Hầu hết người dân chấp hành nghiêm túc chủ trương đi chợ theo hình thức phát phiếu theo ngày chẵn, lẻ được Sở Công thương và các địa phương phối hợp thực hiện.
Ngải cứu có hoạt chất chống virus COVID-19 rất mạnh
Chia sẻ Thảo dược trị sốt cao có tiềm năng chống COVID-19? Công trình nghiên cứu của các nhà khoa học bang Massgachusetts, Hoa Kỳ về tác động của thảo dược tới virus.
Ăn ngay 5 loại quả này để tăng đề kháng phòng chống dịch bệnh
Chia sẻ Ăn một chế độ dinh dưỡng phù hợp sẽ góp phần quan trọng nâng cao sức đề kháng, giảm nguy cơ mắc các bệnh truyền nhiễm và các biến chứng của bệnh lý nền có sẵn.