Tôi chỉ muốn đưa ra một lời cảnh báo:hãy rất cẩn thận chọn chỉ mục nhóm của bạn! Mọi bảng dữ liệu "thông thường" phải có chỉ mục được phân nhóm, vì việc có chỉ mục được phân nhóm thực sự tăng tốc rất nhiều hoạt động - vâng, tăng tốc , thậm chí chèn và xóa! Nhưng chỉ khi bạn chọn một tốt chỉ mục nhóm.
Nó được sao chép nhiều nhất cấu trúc dữ liệu trong cơ sở dữ liệu SQL Server của bạn. Khóa phân cụm cũng sẽ là một phần của mỗi và mọi chỉ mục không phân cụm trên bảng của bạn.
Bạn nên hết sức cẩn thận khi chọn một khóa phân cụm - nó phải là:
-
hẹp (4 byte lý tưởng)
-
duy nhất (Xét cho cùng, đó là "con trỏ hàng". Nếu bạn không đặt nó là duy nhất, SQL Server sẽ làm điều đó cho bạn ở chế độ nền, khiến bạn tốn một vài byte cho mỗi mục nhập nhân với số hàng và số chỉ số không phân biệt của bạn. có - điều này có thể rất tốn kém!)
-
tĩnh (không bao giờ thay đổi - nếu có thể)
-
lý tưởng là ngày càng tăng vì vậy bạn sẽ không gặp phải tình trạng phân mảnh chỉ mục khủng khiếp (GUID hoàn toàn trái ngược với một khóa phân cụm tốt - vì lý do cụ thể đó)
-
nó phải là không thể nullable và lý tưởng là chiều rộng cố định - a
varchar(250)
tạo một khóa phân cụm rất kém
Bất cứ điều gì khác thực sự phải là cấp độ quan trọng thứ hai và thứ ba sau những điểm này ....
Xem một số tác phẩm của Kimberly Tripp ( Nữ hoàng lập chỉ mục ) các bài đăng trên blog về chủ đề này - bất cứ thứ gì cô ấy viết trên blog của mình đều hoàn toàn vô giá - hãy đọc nó, đọc nó - sống theo nó!
- HƯỚNG DẪN làm KHÓA CHÍNH và / hoặc khóa phân nhóm
- Cuộc tranh luận về chỉ mục theo cụm tiếp tục ...
- Khóa phân nhóm ngày càng tăng - Cuộc tranh luận về chỉ mục được phân cụm .......... một lần nữa!
- Dung lượng đĩa rẻ - điều đó không quan trọng!