Index trong SQL là một trong những công cụ truy vấn dữ liệu quan trọng mà những ai làm trong lĩnh vực data cần nắm vững. Công cụ này giúp rút ngắn thời gian truy vấn dữ liệu hơn, từ đó có thể giúp nâng cao năng suất làm việc. Vậy Index trong SQL là gì?
Index trong SQL là gì?
Index (chỉ mục) là các bảng tra cứu đặc biệt được công cụ tìm kiếm cơ sở dữ liệu sử dụng để tăng tốc độ truy xuất dữ liệu. Một index có thể hiểu đơn giản là một tham chiếu đến dữ liệu trong một bảng. Index trong cơ sở dữ liệu tương tự như một chỉ mục ở mặt sau của một tạp chí. Trong vai trò người dùng, bạn không thể xem các chỉ mục và chỉ được sử dụng để tăng tốc độ truy cập cơ sở dữ liệu.
Ví dụ: Để tham khảo tất cả các trang trong một cuốn sách đề cập đến một chủ đề cụ thể, trước tiên bạn hãy vào mục lục, liệt kê tất cả các chủ đề theo thứ tự bảng chữ cái, sau đó bạn đi đến một hoặc nhiều số trang cụ thể.
Chỉ mục ngăn chặn các mục trùng lặp trong cột hoặc tổ hợp các cột mà nó được tạo trên đó. Vì các index trong SQL chủ yếu là một công cụ nâng cao hiệu suất nên chúng hữu ích nhất khi cơ sở dữ liệu tăng kích thước. Clustered Index là một trong những loại chỉ mục phổ biến nhất được máy chủ SQL hỗ trợ. Loại chỉ mục này được tạo tự động bằng khóa chính.
Lệnh CREAT INDEX trong SQL
Lệnh này được sử dụng để tạo bảng index trong SQL. Lưu ý, tại thời điểm tạo bảng, nó sẽ cho phép bạn chấp nhận dữ liệu trùng lặp trên bảng. Lập chỉ mục giúp bạn truy vấn các cột nhanh hơn bằng cách tạo con trỏ tới nơi data được lưu trữ trong cơ sở dữ liệu.
Giả sử bạn cần khoanh vùng một phần dữ liệu cụ thể trong cơ sở dữ liệu khổng lồ. Để lấy dữ liệu này từ cơ sở dữ liệu, máy sẽ tìm kiếm trong từng hàng. Truy vấn này sẽ mất nhiều thời gian để chạy nếu dữ liệu mà bạn đang tìm kiếm ở cuối hàng.
Cú pháp cơ bản để tạo CREATE INDEX:
CREATE INDEX name_of_Index ON name_Of_Table(thuộc tính 1, thuộc tính 2,...);
Ví dụ:
CREATE INDEX ind_A on customer(tall,thin);
Giải thích:
Chúng ta có thể tạo danh sách được sắp xếp bằng cách sử dụng các chỉ mục trong SQL thay vì phải tạo các bảng mới được sắp xếp theo yêu cầu dữ liệu, việc này sẽ chiếm nhiều dung lượng lưu trữ.
- INDEX là từ khóa chỉ định việc tạo chỉ mục.
- “ind_A” là tên chỉ mục.
- “customer” là tên bảng.
Trong ví dụ trên, ind_A đã được tạo với các trường “tall” và “thin” từ bảng của “customer”.
Cách phân biệt giữa VIEW và INDEX
VIEW trong SQL
- VIEW để xem dữ liệu của một hay nhiều cột cụ thể trong bảng.
- VIEW chứa dữ liệu logic của bảng cơ sở (base table). Trong đó bảng cơ sở có dữ liệu thực tế (dữ liệu vật lý). Nói theo một cách khác, VIEW giống như một cửa sổ mà thông qua đó, bạn có thể xem hoặc thay đổi dữ liệu.
- VIEW có thể xem là một bảng mà nội dung có thể chứa dữ liệu từ một hoặc nhiều bảng được kết nối với nhau thông qua một bộ tiêu chí chung.
- VIEW có thể được sử dụng trong bất kỳ câu lệnh SELECT nào như bảng.
- VIEW cung cấp bảo mật cho cả dữ liệu và bảng của cơ sở dữ liệu. Giả sử một bảng bị xoá bỏ do nhầm lẫn thì không thể khôi phục lại được. Nhưng nếu VIEW bị xoá, VIEW đó có thể được tạo lại.
INDEX trong SQL
- INDEX được sử dụng cho mục đích tìm kiếm.
- Các INDEX là các con trỏ biểu thị địa chỉ vật lý của dữ liệu.
- INDEX có thể được tạo trên một cột hoặc kết hợp các cột của bảng cơ sở dữ liệu.
- Một bảng có thể chứa một hoặc nhiều bảng INDEX.
Lệnh DROP INDEX trong SQL
Lệnh DROP trong SQL thường được sử dụng để xóa chỉ mục trên bảng dữ liệu đã chỉ định. Bạn có thể xóa nhiều bảng cùng một lúc.
Cú pháp cơ bản để tạo DROP INDEX:
DROP INDEX name_of_index on Table_name;
Ví dụ:
DROP INDEX Idx_Customer_Index_CustomerIDON Sales.Customer_Index
Phân biệt lệnh DELETE, DROP
DELETE | DROP |
---|---|
DELETE là lệnh DML | DROP là lệnh DDL |
DELETE FROM tble_name WHERE (conditions); | DROP INDEX name_of_index on Table_name; |
DELETE cho phép xóa một hoặc nhiều record khỏi bảng | DROP loại bỏ hoàn toàn bảng khỏi cơ sở dữ liệu |
DELETE không giải phóng không gian lưu trữ được phân bổ của bảng | DROP loại bỏ hoàn toàn không gian lưu trữ được phân bổ cho bảng khỏi bộ nhớ. |
DELETE có thời gian thực thi chậm hơn lệnh DROP vì nó xóa từng hàng một dựa trên các điều kiện đã chỉ định | DROP nhanh hơn DELETE vì trước tiên nó xóa các hàng và sau đó là bảng khỏi cơ sở dữ liệu. |
Ưu và nhược điểm của index trong SQL
Ưu điểm của index trong SQL
- Index giúp tăng tốc truy vấn
- Index giúp một hàng trở nên riêng biệt hoặc không trùng lặp (primary, unique)
- Bạn có thể tiến hành kiểm tra các giá trị chuỗi (string) nếu lệnh index được thực thi chỉ mục toàn văn bản với mục đích tìm một từ trong câu.
Nhược điểm của index trong SQL
- Các chỉ mục chiếm khá nhiều dung lượng
- Index có thể là nguyên nhân khiến các lệnh như INSERT, UPDATE và DELETE thực thi chậm hơn. Tuy nhiên, lệnh UPDATE sẽ tăng tốc nếu điều kiện WHERE có trường được lập chỉ mục. Vì các chỉ mục phải được sửa đổi sau mỗi quá trình thực thi nên INSERT, UPDATE và DELETE trở nên chậm hơn.
Tổng kết
Trên đây là bài viết giải thích và ví dụ chi tiết về Index trong SQL. Bên cạnh đó, chúng tôi còn liệt kê một số lệnh tương tự, dễ gây nhầm lẫn trong việc sử dụng lệnh index. Hy vọng qua bài viết này, bạn có thể nắm cơ bản tính chất và cách thức hoạt động của lệnh index.
Đọc thêm:
- Business intelligence là gì? Vai trò và top các công cụ Business intelligence năm 2023
- Tương lai IoT và cuộc cách mạng xu hướng phát triển trong những năm gần đây
Ngành data đang là một trong những lĩnh vực hot và được nhiều công ty tìm kiếm trong kỷ nguyên dữ liệu như hiện nay. Để có thể học tập, thực hiện tốt công việc liên quan đến dữ liệu nói riêng và ngành công nghệ thông tin nói chung, bạn cần lựa chọn một chiếc laptop phù hợp. Hiện nay, để nâng cao chất lượng dịch vụ, các tư vấn viên tại FPT Shop cũng được cập nhật công nghệ và thông tin về các thông số máy tính nhằm hỗ trợ khách hàng trong việc lựa chọn sản phẩm tốt hơn. FPT Shop cũng là một nhà phân phối chính hãng của nhiều dòng máy khác nhau. Bạn có thể tham khảo một số mẫu laptop với mức giá cạnh tranh sau đây:
- Laptop giá tốt.