Chỉ mục (INDEX) trong SQL
Index trong SQL được dùng như thế nào. Cách đánh index trong SQL như thế nào? Hãy cùng Quantrimang.com tìm hiểu nhé!
Index trong sql là gì?
Index là bảng tra cứu đặc biệt mà công cụ tìm kiếm database có thể dùng để tăng tốc độ truy vấn dữ liệu. Nói đơn giản hơn một index là con trỏ dữ liệu trong một bảng. Nó nằm trong cơ sở dữ liệu tương tự như phần danh mục ở đằng sau một cuốn sách.
Ví dụ, nếu muốn tham chiếu tới tất cả các trang một cuốn sách thảo luận về chủ đề nào đó, đầu tiên, bạn phải tham khảo mục lục. Nó liệt kê tất cả chủ đề theo thứ tự bảng chữ cái cùng với số trang tương ứng.
Một index giúp tăng tốc độ các truy vấn SELECT và mệnh đề WHERE, nhưng nó làm chậm quá trình nhập dữ liệu,với các lệnh lệnh UPDATE và INSERT. Các index có thể được tạo hoặc loại bỏ mà không ảnh hưởng tới dữ liệu.
Tạo một index liên quan tới lệnh CREATE INDEX, cho phép bạn đặt tên cho index, xác định bảng và cột hoặc cột để lập chỉ mục, đồng thời cho biết mục được sắp xếp theo thứ tự tăng hay giảm dần.
Index cũng có thể là duy nhất, giống như UNIQUE, trong đó index ngăn trùng lặp mục trong cột hoặc nhóm cột có chỉ mục.
Các kiểu index có trong SQL:
- Single-Column Index
- Unique Index
- Composite Index
- Implicit Index
Để tạo một chỉ mục ta sử dụng lệnh CREATE INDEX, bạn có thể đặt tên cho chỉ mục, xác định bảng, các cột muốn lập chỉ mục và xác định chỉ mục là theo thứ tự tăng dần hoặc giảm dần.
Lệnh CREATE INDEX
Cú pháp cơ bản của lệnh CREATE INDEX trong SQL như sau:
CREATE INDEX ten_index ON ten_bang;
Chỉ mục SINGLE-COLUMN
Single-Column Index được tạo cho duy nhất 1 cột trong bảng. Cú pháp cơ bản như sau:
CREATE INDEX ten_index
ON ten_bang (ten_cot);
Chỉ mục UNIQUE
Unique Index là chỉ mục duy nhất, được sử dụng để tăng hiệu suất và đảm bảo 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ị trùng lặp nào được chèn vào bảng. Cú pháp cơ bản như sau.
CREATE UNIQUE INDEX ten_index
ON ten_bang (ten_cot);
Chỉ mục COMPOSITE
Composite Index là chỉ mục kết hợp dành cho hai hoặc nhiều cột trong một bảng. Cú pháp cơ bản của nó như sau:
CREATE INDEX ten_index
ON ten_bang (cot1, cot2);
Lưu ý:
- Việc tạo Single-Column Index hay Composite Index tùy thuộc vào tần suất bạn sử dụng 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ì lựa chọn tốt nhất là Single-column Index. Nếu có hai hoặc nhiều cột được sử dụng thường xuyên trong mệnh đề WHERE như là các bộ lọc thì dạng chỉ mục Composite Index là lựa chọn tối ưu hơn.
IMPLICIT INDEX
Implicit Index (Index ngầm định) là chỉ mục mà được tạo tự động bởi Database Server khi một bảng được tạo. Các Index ngầm định được tạo tự động cho các ràng buộc Primary key và các ràng buộc Unique.
Lệnh DROP INDEX
Khi không cần sử dụng INDEX nữa bạn có thể DROP theo cú pháp sau:
DROP INDEX ten_index;
Bạn nên cẩn thận trong khi xóa một chỉ mục, bởi vì khi đó hiệu suất có thể chậm hơn hoặc không được cải thiện.
Tại sao index trong SQL Server quan trọng?
Lập chỉ mục quan trọng khi bạn muốn nâng cao kỹ năng lập trình. Mặc dù hầu hết mọi người đều biết nó là gì và cách dùng ra sao nhưng lại không hiểu rõ khi nào và dùng nó ở đâu để thay đổi hiệu quả của truy vấn hay quá trình lưu trữ.
Sau đây là một số trường hợp kèm giải thích liên quan tới index:
- Khi thực hiện truy vấn trên một bảng có dữ liệu lớn ( > 100000 hàng), SQL thực hiện quét toàn bộ bảng, việc này mất nhiều thời gian và máy chủ thường bị hết thời gian chờ. Để tránh điều đó, hãy luôn kiểm tra tùy chọn giải thích cho truy vấn trong để biết về trạng thái thực thi. Nó cho thấy cột nào đang được sử dụng và liệu nó có phải là mối đe dọa đối với dữ liệu hay không dựa trên cơ sở các cột được lặp lại theo thứ tự tương tự trong điều kiện.
- Thứ tự của chỉ mục có tầm quan trọng rất lớn để xác định lỗi sai. Bạn có thể tạo chỉ mục theo cùng thứ tự để tối đa hóa tốc độ truy vấn.
Tóm lại những điều cần nhớ khi tạo index trong SQL
- Tránh đánh chỉ mục những bảng/cột được sử dụng nhiều: Càng đánh chỉ mục nhiều trên bảng, tác động tới hiệu quả chèn, cập nhật, xóa và hợp nhất lệnh càng lớn bởi toàn bộ index phải được chỉnh sửa phù hợp. Điều đó có nghĩa SQL Server phải tách trang, chuyển dữ liệu xung quanh và phải làm việc đó cho toàn bộ index bị ảnh hưởng bởi các lệnh DML.
- Thu hẹp các khóa index bất cứ khi nào có thể: Liên tục thu hẹp index, chỉ một số cột nếu có thể. Những khóa số chính xác là những khóa index SQL hiệu quả nhất. Những khóa này cần ít dung lượng lưu trữ và chi phí bảo trì hơn.
- Dùng index được nhóm trên các cột duy nhất - Xem xét các cột là duy nhất hay chứa nhiều giá trị riêng và tránh dùng chúng trên những cột thay đổi thường xuyên.
- Index không theo nhóm trên cột được tìm kiếm thường xuyên.
Ở bài tiếp theo, Quantrimang sẽ cùng bạn thảo luận cách sử dụng lệnh ALTER TABLE trong SQL. Các bạn nhớ theo dõi nhé!
Bạn nên đọc
- One One NiceThích · Phản hồi · 0 · 07/09/20
Cũ vẫn chất
-
Căn chỉnh - Align trong CSS
Hôm qua -
Code Party Nốt Nhạc Ngôi Sao Rực Rỡ mới nhất và cách nhập code
Hôm qua 2 -
Code Tru Tiên Thanh Vân Chí và các sự kiện nhận giftcode
Hôm qua -
Top 8 ứng dụng học tiếng Anh hàng đầu trên Android và iOS
Hôm qua -
Che trở hay che chở đúng chính tả?
Hôm qua -
Xoay sở hay xoay xở mới đúng chính tả? Có đến 90% người dùng bị sai
Hôm qua -
Tìm hiểu về mã lỗi 0xc00000e và cách khắc phục
Hôm qua 1 -
Cách thiết kế tờ rơi quảng cáo trong Word
Hôm qua -
Tổng hợp code Animiya AFK Epic Battles mới nhất
Hôm qua -
Mệnh đề HAVING trong SQL Server
Hôm qua