Các chỉ mục hay index trong sql là các bảng tra cứu đặc biệt mà 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 giản chỉ cần thiết lập một chỉ số là một con trỏ đến dữ liệu trong một bảng. Một chỉ mục trong một cơ sở dữ liệu rất giống với một chỉ mục ở mặt sau của một cuốn sách.
Ví dụ: nếu bạn muốn tham chiếu 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 hãy tham chiếu chỉ mục, liệt kê tất cả các chủ đề theo thứ tự bảng chữ cái và sau đó được gọi đến một hoặc nhiều số trang cụ thể.
Một chỉ mục giúp tăng tốc các truy vấn SELECT và các mệnh đề WHERE , nhưng nó làm chậm dữ liệu nhập vào, với các câu lệnh UPDATE và INSERT . Các chỉ mục có thể được tạo ra hoặc bỏ đi mà không ảnh hưởng đến dữ liệu.
Tạo một chỉ mục bao gồm lệnh CREATE INDEX , cho phép bạn đặt tên cho chỉ mục, để xác định bảng, cột và cột nào cần lập chỉ mục, và chỉ ra cho dù chỉ mục có tăng dần hay giảm dần hay không.
Các chỉ mục cũng có thể là duy nhất, như hạn chế UNIQUE , trong đó chỉ mục ngăn ngừa các mục trùng lặp trong cột hoặc sự kết hợp của các cột mà trên đó có một chỉ mục.
Nội dung chính
Lệnh CREATE INDEX
Cú pháp cơ bản của một CREATE INDEX như sau.
CREATE INDEX index_name ON table_name;
Chỉ mục Cột (Column)
Chỉ mục một cột được tạo 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 UNIQUE
Chỉ số duy nhất được sử dụng không chỉ cho hiệu suất, mà còn cho tính toàn vẹn dữ liệu. Một chỉ mục duy nhất không cho phép chèn bất kỳ giá trị nhân bản 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ỉ số kết hợp
Một chỉ mục kết hợp là một chỉ mục trên hai hoặc nhiều cột của một bảng. Cú pháp cơ bản của nó như sau.
CREATE INDEX index_name on table_name (column1, column2);
Cho dù bạn có tạo chỉ mục một cột hoặc một chỉ mục kết 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 dưới dạng điều kiện bộ lọc.
Nếu chỉ có một cột được sử dụng thì một chỉ mục cột đơn là sự lựa chọn. Nên có hai hoặc nhiều cột được sử dụng thường xuyên trong mệnh đề WHERE làm bộ lọc, thì chỉ số kết hợp sẽ là sự lựa chọn tốt nhất.
Chỉ mục ẩn
Chỉ mục ngầm là các chỉ mục được tạo tự động bởi máy chủ cơ sở dữ liệu khi một đối tượng được tạo ra. Các chỉ mục được tạo tự động cho các ràng buộc khoá chính và các ràng buộc duy nhất.
Lệnh DROP INDEX
Một chỉ mục có thể được bỏ qua bằng lệnh SQL DROP . Cần lưu ý khi thả một chỉ mục bởi 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;
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 một cơ sở dữ liệu, nhưng đôi khi cần tránh.
Các hướng dẫn sau đây chỉ ra khi sử dụng một chỉ mục nên được xem xét lại.
- Các chỉ mục không được sử dụng trên các bảng nhỏ.
- Các bảng có cập nhật hàng loạt thường xuyên, hoặc các hoạt động insert.
- Các chỉ mục không nên được sử dụng trên các cột có chứa một số lượng lớn các giá trị NULL.
- Các cột thường được thao tác không nên được lập chỉ mục.