Mục lục giúp tăng tốc độ truy xuất dữ liệu. Nếu không có mục lục, cơ sở dữ liệu sẽ quét từng hàng để tìm các bản ghi phù hợp. Với mục lục, nó sẽ nhảy trực tiếp đến các hàng liên quan. Mục lục là một cấu trúc dữ liệu riêng biệt ánh xạ các giá trị đến vị trí. Mục lục sách hoạt động theo cách tương tự. Bạn tra cứu một thuật ngữ và tìm số trang. Bạn không cần đọc từng trang để tìm nó. Cơ sở dữ liệu cũng làm điều tương tự.
Việc tạo chỉ mục có chi phí. Chúng chiếm không gian lưu trữ. Chúng làm chậm quá trình chèn, cập nhật và xóa dữ liệu vì chỉ mục cũng phải được cập nhật. Mỗi thao tác ghi đều trở nên tốn kém hơn. Lợi ích là tốc độ đọc nhanh hơn. Đối với các tác vụ đọc nhiều, chỉ mục là rất cần thiết. Đối với các tác vụ ghi nhiều, quá nhiều chỉ mục sẽ làm giảm hiệu suất. Việc lựa chọn cột nào để lập chỉ mục đòi hỏi phải hiểu các mẫu truy vấn. Các cột được sử dụng trong mệnh đề WHERE, điều kiện JOIN và mệnh đề ORDER BY là những ứng cử viên tốt. Các cột có số lượng giá trị thấp, chẳng hạn như cờ boolean, là những ứng cử viên không tốt vì chỉ mục không thu hẹp phạm vi tìm kiếm nhiều. Chỉ mục tổng hợp bao gồm nhiều cột và có thể phục vụ các truy vấn lọc trên nhiều trường. Thứ tự các cột trong chỉ mục tổng hợp rất quan trọng. Cơ sở dữ liệu có thể sử dụng chỉ mục tổng hợp cho các truy vấn trên cột đầu tiên nhưng không thể chỉ sử dụng trên các cột cuối cùng. Thiết kế chỉ mục là một sự đánh đổi. Mục tiêu là tăng tốc các truy vấn quan trọng mà không làm chậm quá trình ghi nhiều hơn mức cần thiết.
Các loại chỉ mục
- Cây B — cấu trúc mặc định cho hầu hết các cơ sở dữ liệu, phù hợp cho các truy vấn phạm vi.
- Hash — tra cứu nhanh chóng bằng nhau, không hỗ trợ phạm vi
- Bitmap — các cột có số lượng giá trị thấp, truy vấn phân tích
- Tìm kiếm toàn văn — tìm kiếm văn bản
- Tổng hợp — nhiều cột trong một chỉ mục
Chỉ mục là một lối tắt. Nó đánh đổi tốc độ ghi và dung lượng lưu trữ để lấy tốc độ đọc. Hãy sử dụng nó ở những nơi mà tốc độ đọc là quan trọng nhất.
Comments (3)
Leave a comment