SQL - Chỉ mục

Chỉ mục là special lookup tablesmà công cụ tìm kiếm cơ sở dữ liệu có thể sử dụng để tăng tốc độ truy xuất dữ liệu. Nói một cách đơn giản, chỉ mục là một con trỏ đến dữ liệu trong một bảng. Một chỉ mục trong cơ sở dữ liệu rất giống với một chỉ mục ở phía sau một cuốn sách.

Ví dụ: nếu bạn muốn tham chiếu đến tất cả các trang trong một cuốn sách thảo luận về một chủ đề nhất định, trước tiên bạn tham khảo chỉ mục, mục lục này liệt kê tất cả các chủ đề theo thứ tự bảng chữ cái và sau đó được tham chiếu đến một hoặc nhiều số trang cụ thể.

Một chỉ mục giúp tăng tốc SELECT truy vấn và WHERE , nhưng nó làm chậm quá trình nhập dữ liệu, với UPDATEINSERTcác câu lệnh. Chỉ mục có thể được tạo hoặc giảm xuống mà không ảnh hưởng đến dữ liệu.

Tạo một chỉ mục bao gồm CREATE INDEX câu lệnh, cho phép bạn đặt tên cho chỉ mục, chỉ định bảng và cột hoặc các cột nào để lập chỉ mục và cho biết chỉ mục theo thứ tự tăng dần hay giảm dần.

Các chỉ mục cũng có thể là duy nhất, như UNIQUE ràng buộc, trong đó chỉ mục ngăn chặn các mục nhập trùng lặp trong cột hoặc kết hợp các cột mà trên đó có chỉ mục.

Lệnh CREATE INDEX

Cú pháp cơ bản của một CREATE INDEX là như sau.

CREATE INDEX index_name ON table_name;

Chỉ mục một cột

Chỉ mục một cột được tạo chỉ dựa trên một cột của bảng. Cú pháp cơ bản như sau.

CREATE INDEX index_name
ON table_name (column_name);

Chỉ mục duy nhất

Các chỉ mục duy nhất không chỉ được sử dụng cho hiệu suất mà còn cho tính toàn vẹn của dữ liệu. Chỉ mục duy nhất không cho phép chèn bất kỳ giá trị trùng lặp nào vào bảng. Cú pháp cơ bản như sau.

CREATE UNIQUE INDEX index_name
on table_name (column_name);

Chỉ mục tổng hợp

Chỉ mục tổng hợp là một chỉ mục trên hai hoặc nhiều cột của bảng. Cú pháp cơ bản của nó như sau.

CREATE INDEX index_name
on table_name (column1, column2);

Cho dù tạo chỉ mục cột đơn hay chỉ mục tổng hợp, hãy xem xét (các) cột mà bạn có thể sử dụng rất thường xuyên trong mệnh đề WHERE của truy vấn làm điều kiện lọc.

Nếu chỉ có một cột được sử dụng, chỉ mục một cột nên là lựa chọn. Nếu có hai hoặc nhiều cột thường được sử dụng trong mệnh đề WHERE làm bộ lọc, chỉ mục tổng hợp sẽ là lựa chọn tốt nhất.

Chỉ mục ngầm định

Chỉ mục ngầm là các chỉ mục được máy chủ cơ sở dữ liệu tự động tạo khi một đối tượng được tạo. Các chỉ mục được tạo tự động cho các ràng buộc khóa chính và các ràng buộc duy nhất.

Lệnh DROP INDEX

Một chỉ mục có thể bị loại bỏ bằng cách sử dụng SQL DROPchỉ huy. Cần cẩn thận khi giảm chỉ số vì hiệu suất có thể chậm lại hoặc cải thiện.

Cú pháp cơ bản như sau:

DROP INDEX index_name;

Bạn có thể kiểm tra chương Ràng buộc INDEX để xem một số ví dụ thực tế về Chỉ mục.

Khi nào nên tránh lập chỉ mục?

Mặc dù các chỉ mục nhằm mục đích nâng cao hiệu suất của cơ sở dữ liệu, nhưng đôi khi chúng nên được tránh.

Các hướng dẫn sau đây cho biết khi nào việc sử dụng một chỉ mục nên được xem xét lại.

  • Chỉ mục không nên được sử dụng trên các bảng nhỏ.

  • Các bảng có cập nhật hàng loạt lớn hoặc hoạt động chèn thường xuyên.

  • Chỉ mục không được sử dụng trên các cột chứa nhiều giá trị NULL.

  • Các cột được thao tác thường xuyên sẽ không được lập chỉ mục.