0
0
Lập trình
Thaycacac
Thaycacac thaycacac

Lợi Ích và Cách Sử Dụng Nhiều Loại Index Trên Cùng Một Cột Trong Cơ Sở Dữ Liệu

Đăng vào 1 tháng trước

• 3 phút đọc

1. Giới Thiệu

Trong lĩnh vực quản lý cơ sở dữ liệu, việc áp dụng nhiều loại index trên một cột không chỉ giúp tối ưu hóa hiệu suất mà còn hỗ trợ cho các tác vụ truy vấn và phân tích dữ liệu đa dạng. Mặc dù có thể nghe có vẻ phức tạp, nhưng việc kết hợp các loại index như B-tree, bitmap, và reverse key trên cùng một cột có thể mang lại những lợi ích đáng kể cho việc xử lý dữ liệu. Điều này đặc biệt quan trọng trong các tình huống yêu cầu thực hiện nhiều loại truy vấn khác nhau.

2. Phân Tích Chi Tiết

Việc sử dụng nhiều loại index trên cùng một cột là hoàn toàn khả thi; tuy nhiên, cũng cần lưu ý rằng chỉ một index có thể ở trạng thái "visible" tại một thời điểm. Trường hợp đặc biệt là function-based index, vì nó không chỉ nằm trên cột mà còn dựa trên hàm từ cột đó.

Tính năng cho phép sử dụng nhiều index khác nhau cho các khối lượng công việc dao động trên cùng một bảng rất hiệu quả. Người dùng có thể điều chỉnh các loại index khác nhau cho các tác vụ batch, truy vấn hay cho kho dữ liệu trong suốt thời gian trong ngày hoặc đêm. Tuy nhiên, cần chú ý rằng không thể có cả B-tree và B-tree cluster index cho cùng một cột; cũng như không thể có cả B-tree index và index-organized table (IOT).

Các index đều được duy trì trong khi thực hiện các thao tác DML, ngay cả khi chúng đang ở trạng thái invisible. Do vậy, nếu quá nhiều index được tạo ra, hiệu suất của các thao tác DML có thể giảm.

Ví Dụ Minh Họa

Dưới đây là một câu lệnh SELECT cơ bản từ bảng DEPT, mà chúng ta sẽ sử dụng để minh họa trong phần này:

Tạo Unique Index:

sql Copy
CREATE UNIQUE INDEX unique_index_name ON DEPT(column_name);

Mặc dù các index có thể được đặt ở trạng thái invisible, nhưng vẫn không cho phép chèn các giá trị trùng lặp vào bảng.

Kiểm Tra Tình Trạng Visibility của Index:

Việc kiểm tra visibility của các index rất quan trọng để đảm bảo chúng hoạt động hiệu quả.

Chúng ta không thể tạo một index khác trên cùng một cột nếu index đó đang ở trạng thái visible. Tuy nhiên, bằng cách làm cho index đầu tiên invisible, chúng ta có thể tạo thêm index thứ hai:

sql Copy
ALTER INDEX first_index_name INVISIBLE;
CREATE INDEX second_index_name ON DEPT(column_name);

Kiểm tra thông tin visibility của các index sẽ cho thấy rằng có hai index trên cùng một cột và chỉ có một index có thể visible tại một thời điểm.

Nếu chúng ta cố gắng làm cho cả hai index đều visible, điều đó sẽ dẫn đến lỗi. Chỉ một index vẫn có thể hoạt động ở trạng thái visible trừ những trường hợp đặc biệt (function-based index).

Ngoài ra, để thêm một index thứ ba, cần phải làm cho hai index đầu tiên trở thành invisible:

sql Copy
ALTER INDEX first_index_name INVISIBLE;
ALTER INDEX second_index_name INVISIBLE;
CREATE INDEX third_index_name ON DEPT(column_name);

Có thể tạo hai index visible cùng một lúc trên một cột nếu một trong số đó là function-based index. Tiến hành làm cho index thứ ba invisible và thêm index thứ tư, thứ năm sẽ cho phép chúng ta quản lý hiệu quả hơn.

Mẹo Sử Dụng Index
Với việc sử dụng các invisible index, bạn có thể tạo được nhiều index trên cùng một cột hoặc nhiều cột khác nhau, điều này rất hữu ích cho các khối lượng công việc thay đổi. Ví dụ, bạn có thể sử dụng B-tree index cho các tác vụ hàng ngày và sử dụng reverse key index cho các tác vụ vào ban đêm. Tuy nhiên, đừng quên rằng việc duy trì và chi phí cho các thao tác INSERT, DELETE, và cập nhật trên tất cả các index này cũng cần được xem xét.

3. Kết Nối và Trao Đổi

Nếu bạn có bất kỳ câu hỏi nào hoặc muốn thảo luận thêm về bài viết, hãy kết nối với tôi qua LinkedIn và Facebook:

Mong được kết nối và cùng thảo luận về những kiến thức hữu ích trong quản lý cơ sở dữ liệu!
source: viblo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào